diff --git a/Acumuladores/EntradasUsados.aspx b/Acumuladores/EntradasUsados.aspx deleted file mode 100644 index b7c2dd864..000000000 --- a/Acumuladores/EntradasUsados.aspx +++ /dev/null @@ -1,19 +0,0 @@ -<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="EntradasUsados.aspx.vb" Inherits="Acumuladores_EntradasUsados" %> - - - - - - - - - - - - - - - - - - diff --git a/Acumuladores/EntradasUsados.aspx.vb b/Acumuladores/EntradasUsados.aspx.vb deleted file mode 100644 index 3a0e4f59c..000000000 --- a/Acumuladores/EntradasUsados.aspx.vb +++ /dev/null @@ -1,5 +0,0 @@ - -Partial Class Acumuladores_EntradasUsados - Inherits System.Web.UI.Page - -End Class diff --git a/Acumuladores/RepEntradasUsadosClientes.aspx b/Acumuladores/RepEntradasUsadosClientes.aspx new file mode 100644 index 000000000..3a55af4e0 --- /dev/null +++ b/Acumuladores/RepEntradasUsadosClientes.aspx @@ -0,0 +1,65 @@ +<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RepEntradasUsadosClientes.aspx.vb" Inherits="Acumuladores_RepEntradasUsadosClientes" %> + + + + + + + + + + + + + + + + +
+
+
+ + "> + +
+
+
Almacen:
+
+ +
+
+
Fecha Inicio:
+
+
+ + + + +
+ + +
+
Fecha Fin:
+
+
+ + + + +
+ + +
+ +
+
+
+ +
+
+
+ +
+ + + diff --git a/Acumuladores/RepEntradasUsadosClientes.aspx.vb b/Acumuladores/RepEntradasUsadosClientes.aspx.vb new file mode 100644 index 000000000..29d60c703 --- /dev/null +++ b/Acumuladores/RepEntradasUsadosClientes.aspx.vb @@ -0,0 +1,48 @@ +Imports Extensiones +Imports System + +Partial Class Acumuladores_RepEntradasUsadosClientes + Inherits ClsPaginas + + Private Sub Acumuladores_EntradasUsados_Load(sender As Object, e As EventArgs) Handles Me.Load + + If Not Page.IsPostBack Then + CargaCombos() + End If + + End Sub + + Private Sub BtnConsultar_Click(sender As Object, e As EventArgs) Handles BtnConsultar.Click + CargaDatos() + + End Sub + + Public Sub CargaCombos() + DdlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) + DdlAlmacen.DataBind() + DdlAlmacen.Items.Insert(0, New ListItem("Todos", "-1")) + + TxtFechaI.text = now.Firstdayofmonth + txtfechaf.text = now.toshortdatestring + + End Sub + + Private Sub CargaDatos() + + Dim FechaI, FechaF As Date + FechaI = If(IsDate(TxtFechaI.Text.Trim()), TxtFechaI.Text.Trim.todate, minfecha) + FechaF = If(IsDate(TxtFechaF.Text.Trim()), TxtFechaF.Text.Trim.todate, maxfecha) + + Dim CveAlmacen As Integer = If(DdlAlmacen.SelectedValue = "", "-1", DdlAlmacen.SelectedValue).ToString.toentero + + Dim Acum As New ClsAcumuladores + + If Acum.EntradasUsadosClientesRep(CveAlmacen, FechaI, FechaF, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then + GvDatos.datasource = Acum.DtResultados + End If + + Acum.Dispose() + GvDatos.databind + + End Sub +End Class diff --git a/App_Code/ClsAcumuladores.vb b/App_Code/ClsAcumuladores.vb index b08d3546a..e0101b881 100644 --- a/App_Code/ClsAcumuladores.vb +++ b/App_Code/ClsAcumuladores.vb @@ -866,11 +866,11 @@ Public Class ClsAcumuladores Return Retorno End Function - Public Function EntradasUsadosGet(CveAlmacen As Integer, FechaI As Date, FechaF As Date, CveUsuario As Integer, CveEmpresa As Integer) As Boolean + Public Function EntradasUsadosClientesRep(CveAlmacen As Integer, FechaI As Date, FechaF As Date, CveUsuario As Integer, CveEmpresa As Integer) As Boolean Dim Retorno As Boolean = False 'Data = New DataTable - SqlDataAdapter("PA_Acum_EntradasUsadosGet") + SqlDataAdapter("PA_Acum_EntradasUsadosClientesGet") With SqlAdapter.SelectCommand.Parameters .Add("@CveAlmacen", SqlDbType.Int).Value = CveAlmacen diff --git a/App_Code/ClsInventarios.vb b/App_Code/ClsInventarios.vb index 09af84a3e..c74ea1059 100644 --- a/App_Code/ClsInventarios.vb +++ b/App_Code/ClsInventarios.vb @@ -1778,7 +1778,11 @@ Public Class ClsInventarios Retorno = SqlAdapter.SelectCommand.Parameters("@Existencia").Value.ToString.ToDecimal() Me.CvePS = SqlAdapter.SelectCommand.Parameters("@CvePSRetorno").Value.ToString.ToEntero Catch Ex1 As SqlException - Me.OnError("Ocurrió un error al obtener las existencias del producto.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + If Ex1.Message.Contains("deadlocked") Then + Me.OnError("Ocurrió un error al obtener las existencias del producto. Puede intentarlo de nuevo", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + Else + Me.OnError("Ocurrió un error al obtener las existencias del producto.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End If Catch ex As Exception OnError("Ocurrió un error al obtener las existencias del producto.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) End Try @@ -3290,8 +3294,27 @@ Public Class ClsInventarios End Function #End Region + Public Function GetMovimientoMetodoNulo(CveMovimiento As Integer) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_Inv_MovimientoMetodoNulo") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveMovimiento", SqlDbType.Int).Value = CveMovimiento + .Add("@Valido", SqlDbType.Int).Direction = ParameterDirection.Output + End With + + Try + SqlAdapter.Fill(Data) + Retorno = If(SqlAdapter.SelectCommand.Parameters("@Valido").Value.ToString.ToEntero = 1, True, False) + Catch ex As Exception + OnError("Ocurrió un error al obtener El Costo del Producto/Servicio.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + #Region " INVENTARIOS - COSTO PS " - Public Function GetCostoPS(CvePS As Integer, Cantidad As Double, CveAlmacen As Integer, SerieLote As String, FechaFin As Date, Optional CveSubProyecto As Integer = -1, Optional CveTipoAlmacen As Integer = 1) As Decimal + Public Function GetCostoPS(CvePS As Integer, Cantidad As Double, CveAlmacen As Integer, SerieLote As String, FechaFin As Datetime, Optional CveSubProyecto As Integer = -1, Optional CveTipoAlmacen As Integer = 1) As Decimal Dim Retorno As Decimal = -1D DataAdapter("PA_Inv_PSCostoGet") @@ -3300,7 +3323,7 @@ Public Class ClsInventarios .Add("@Cantidad", SqlDbType.Float).Value = Cantidad .Add("@CveAlmacen", SqlDbType.Int).Value = CveAlmacen .Add("@SerieLote", SqlDbType.VarChar).Value = SerieLote - .Add("@FechaFin", SqlDbType.Date).Value = FechaFin + .Add("@FechaFin", SqlDbType.DateTime).Value = FechaFin .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto .Add("@CveTipoAlmacen", SqlDbType.Int).Value = CveTipoAlmacen .Add("@Costo", SqlDbType.Money).Direction = ParameterDirection.Output diff --git a/App_Code/ClsProductosServicios.vb b/App_Code/ClsProductosServicios.vb index 3df18c5db..317ff984a 100644 --- a/App_Code/ClsProductosServicios.vb +++ b/App_Code/ClsProductosServicios.vb @@ -1696,6 +1696,41 @@ Public Class ClsProductosServicios Return Retorno End Function + Public Function UpdatePSPrecios(Importe As Decimal, CvePrecioLista As Integer, Porcentaje As Decimal, CvePS As Integer, CveUsuario As Integer, Fecha As DateTime, Fijo As Boolean, Optional PrecioMinimo As Decimal = Nothing) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_Vta_PSPrecioUpdate") + + With SqlAdapter.SelectCommand.Parameters + + If Importe = -1 Then + .Add("@Importe", SqlDbType.Float).Value = DBNull.Value + Else + .Add("@Importe", SqlDbType.Float).Value = Importe + End If + + If Porcentaje = -1 Then + .Add("@Porcentaje", SqlDbType.Money).Value = DBNull.Value + Else + .Add("@Porcentaje", SqlDbType.Money).Value = Porcentaje + End If + + .Add("@PrecioMinimo", SqlDbType.Decimal).Value = PrecioMinimo + .Add("@CvePS", SqlDbType.Int).Value = CvePS + .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario + .Add("@Fecha", SqlDbType.DateTime).Value = Fecha + .Add("@Fijo", SqlDbType.Bit).Value = Fijo + + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al actualizar los precios de lista.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return Retorno + End Function + Public Function GetPSPrecioLista(CvePS As Integer, CveEmpresa As Integer, Optional CvePrecioLista As Integer = -1) As Boolean Dim Retorno As Boolean = False diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb index 0e91e582c..a9b95dc41 100644 --- a/App_Code/Modelos.vb +++ b/App_Code/Modelos.vb @@ -3858,6 +3858,13 @@ Namespace Modelos Return Retorno End If + If ObjFactura.TipoDocto = "Ant" AndAlso ObjFactura.SaldoAmortizado > 0 Then + Retorno.Mensaje = "La factura no se puede cancelar debido a que esta amortizada." + Retorno.TipoMensaje = TipoMensaje.MsgAdvertencia + + Return Retorno + End If + 'SI LA REMISION ESTA FACTURADA NO SE PUEDE CANCELAR If ObjFactura.TipoDocto = "Rem" Then Dim ObjV As New ClsVentas @@ -4283,11 +4290,6 @@ Namespace Modelos End If End If - 'REALIZA LA DEVOLUCION AL ALMACEN VIRTUAL - If Not GeneraMovimientosVirtuales(CveVenta, ObjInventario) Then - ErrorCancelar = True - MensajeError = "Ocurrió un error al cargar los datos de devolución. Por favor vuelva a intentar." - End If Else 'UTILIZA LA DEVOLUCION YA REALIZADA If ObjInventario.GetInv_Mov(CveVenta, UsuarioActual.CveEmpresa) Then @@ -4298,6 +4300,12 @@ Namespace Modelos End If End If + 'REALIZA LA DEVOLUCION AL ALMACEN VIRTUAL + If Not GeneraMovimientosVirtuales(CveVenta, ObjInventario) Then + ErrorCancelar = True + MensajeError = "Ocurrió un error al cargar los datos de devolución. Por favor vuelva a intentar." + End If + 'DEVOLUCION REMISION - REGRESA LAS EXISTENCIAS A ENTREGA POR ADELANTADO SI LA FACTURA VIENE DE REMISION If Not ErrorCancelar AndAlso RevivirRemisiones Then If Not GeneraMovimientosEntregaPorAdelantadoRemision(CveMovimiento, ObjVentas, ObjInventario, DtDevRem, ListaRemisionesCancelar) Then @@ -5057,6 +5065,8 @@ Namespace Modelos Public Property SaldoVentaDevolucion As Decimal Public Property Saldo As Decimal Public Property SaldoAlmacen As Decimal + Public Property SaldoAnticipo As Decimal + Public Property SaldoAmortizado As Decimal Public Property CvePAC As Integer Public Property CveAnticipo As Integer Public Property RemisionesLista As List(Of Integer) diff --git a/App_Code/modExtensiones.vb b/App_Code/modExtensiones.vb index 11b2f7c26..f4a068120 100644 --- a/App_Code/modExtensiones.vb +++ b/App_Code/modExtensiones.vb @@ -367,9 +367,9 @@ Namespace Extensiones End Sub - Public Sub OnError(Obj As Object, Mensaje As String, Exeption As Exception, Optional InfoAdicional As String = "") + Public Sub OnError(Obj As Object, Mensaje As String, Exeption As Exception, Optional InfoAdicional As String = "", Optional TipoMensaje As TipoMensaje = TipoMensaje.MsgError) GuardaLog(String.Format("{0} DESCRIPCIÓN DETALLADA: {1} {2} {3}", Mensaje, Exeption.ToString, vbCrLf, InfoAdicional)) - Alert(Obj, Mensaje, TipoMensaje.MsgError) + Alert(Obj, Mensaje, TipoMensaje) If WebConfigurationManager.AppSettings("SiteName") IsNot Nothing AndAlso WebConfigurationManager.AppSettings("SiteName").ToString = "1" Then MandaCorreoError(String.Format("{0} DESCRIPCIÓN DETALLADA: {1} {2} {3}", Mensaje, Exeption.ToString, vbCrLf, InfoAdicional)) End Sub diff --git a/Bancos/RepCortes.aspx b/Bancos/RepCortes.aspx index 2fb94ba90..7794916f9 100644 --- a/Bancos/RepCortes.aspx +++ b/Bancos/RepCortes.aspx @@ -157,6 +157,20 @@ + + + + + + + + + + + + + + diff --git a/Compras/ReembolsosComprobaciones.aspx b/Compras/ReembolsosComprobaciones.aspx index 9eb840af9..391e282bf 100644 --- a/Compras/ReembolsosComprobaciones.aspx +++ b/Compras/ReembolsosComprobaciones.aspx @@ -291,7 +291,7 @@ - + diff --git a/Contabilidad/PlantillasPolizasDetalle.aspx.vb b/Contabilidad/PlantillasPolizasDetalle.aspx.vb index 56fd3a6bb..e778a21ea 100644 --- a/Contabilidad/PlantillasPolizasDetalle.aspx.vb +++ b/Contabilidad/PlantillasPolizasDetalle.aspx.vb @@ -105,7 +105,7 @@ Partial Class Contabilidad_PlantillasPolizasDetalle Me.GvDatos.DataSource = Nothing End If - OrdenaDatos() + ' OrdenaDatos() End Sub Public Sub CargaDatosPoliza(CvePlantillaPoliza As Integer) Dim ObjPlantillaPolizas As New ClsContabilidad diff --git a/Inicio.aspx.vb b/Inicio.aspx.vb index 657be3877..55e2ac042 100644 --- a/Inicio.aspx.vb +++ b/Inicio.aspx.vb @@ -81,23 +81,22 @@ Partial Class Inicio If UsuarioActual.CveRol = 1 Then divInd.Visible = True CargaSubProyectos() - End If - - If UsuarioActual.TienePermisoProceso(271) Then MuestraVentasPUE() + End If + + 'Ventas no timbradas por centro de costo + If UsuarioActual.TienePermisoProceso(208) Then MuestraNoTimbradasCentroCosto() + + 'Reporte facaturas pendientes por autorizar Oscar 2016-07-06 + If UsuarioActual.TienePermisoProceso(158) Then + RegistraScript("$( document ).ready(function() { AbrirVentana('/Compras/PopUpFacturasPendientesAutorizar.aspx');});", "repFacturas") + End If + + If UsuarioActual.TienePermisoProceso(271) Then MuestraVentasPUE() If UsuarioActual.TienePermisoProceso(270) Then MuestraComprasPUE() - Dim EsDEV = ConfigurationManager.ConnectionStrings("Conexion").ConnectionString.Contains("Desarrollo2017") + Dim EsDEV = Not UsuarioActual.Empresa.FacturaProduccion If Not EsDEV Then - If UsuarioActual.CveUsuario.Contiene(93, 1425, 2, 1606, 1472, 100) Then MuestraInconsistencias() '100 - End If - - 'Ventas no timbradas por centro de costo - If UsuarioActual.TienePermisoProceso(208) Then MuestraNoTimbradasCentroCosto() - - - 'Reporte facaturas pendientes por autorizar Oscar 2016-07-06 - If UsuarioActual.TienePermisoProceso(158) Then - RegistraScript("$( document ).ready(function() { AbrirVentana('/Compras/PopUpFacturasPendientesAutorizar.aspx');});", "repFacturas") + If UsuarioActual.CveUsuario.Contiene(93, 1425, 2, 1606, 1472, 100) Then MuestraInconsistencias() '100 End If 'MUESTRA CALENDARIO SOLO ROL ADMINISTRADOR-AD diff --git a/Inventarios/PaquetesArmadoDesarmado.aspx.vb b/Inventarios/PaquetesArmadoDesarmado.aspx.vb index 40fa29776..b6eff1c35 100644 --- a/Inventarios/PaquetesArmadoDesarmado.aspx.vb +++ b/Inventarios/PaquetesArmadoDesarmado.aspx.vb @@ -301,10 +301,11 @@ Partial Class Inventarios_PaquetesArmadoDesarmado Dim CveUMTemp = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlPaqueteDesarmado.SelectedValue.ToEntero).FiltroPrimeroValor("CveUM").ToEntero CveVendedor = If(RowApartadosDesarmado.Visible, DdlVendedorDesarmado.SelectedValue.ToEntero, -1) CveCliente = If(RowClienteDesarmado.Visible, DdlClienteDesarmado.SelectedValue.ToEntero, -1) + Dim FechaFin As String = TxtFechaDesarmado.Text.ToDateTime.ToString("yyyy/MM/dd 23:59") Dim ObjInventarios As New ClsInventarios - Dim Existencia = ObjInventarios.GetExistenciasPS(DdlPaqueteDesarmado.SelectedValue.ToEntero, CveUMTemp, UsuarioActual.CveEmpresa, DdlAlmacenDesarmado.SelectedValue.ToEntero, FechaMovto:=TxtFechaDesarmado.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), CveVendedor:=CveVendedor, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente)) - Dim CostoPromedio = ObjInventarios.GetCostoPS(DdlPaqueteDesarmado.SelectedValue.ToEntero, TxtCantidadDesarmado.Text.ToDouble, DdlAlmacenDesarmado.SelectedValue.ToEntero, "-1", TxtFechaDesarmado.Text.ToDate) + Dim Existencia = ObjInventarios.GetExistenciasPS(DdlPaqueteDesarmado.SelectedValue.ToEntero, CveUMTemp, UsuarioActual.CveEmpresa, DdlAlmacenDesarmado.SelectedValue.ToEntero, FechaMovto:=FechaFin, CveVendedor:=CveVendedor, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente)) + Dim CostoPromedio = ObjInventarios.GetCostoPS(DdlPaqueteDesarmado.SelectedValue.ToEntero, TxtCantidadDesarmado.Text.ToDouble, DdlAlmacenDesarmado.SelectedValue.ToEntero, "-1", FechaFin.ToDate, CveTipoAlmacen:=-1) ObjInventarios.Dispose() If Existencia - TxtCantidadDesarmado.Text.ToDouble < 0 Then diff --git a/Inventarios/RecepcionEntrega.aspx.vb b/Inventarios/RecepcionEntrega.aspx.vb index 1ab6dbd11..d2251c4a9 100644 --- a/Inventarios/RecepcionEntrega.aspx.vb +++ b/Inventarios/RecepcionEntrega.aspx.vb @@ -2261,10 +2261,38 @@ Partial Class Inventarios_RecepcionEntrega End If End If + 'QUEMAR REMISIONES + If Not ErrorMovInv And EsDevolucionVenta = 1 And TipoDocto = "Ing" Then + Dim DtDevRem As New DataTable + + 'CARGA REMISIONES DE LA VENTA DEVUELTA + If ObjInventario.GetDevolucionRemisionesFacturadas(CveVentaSurtir) Then + DtDevRem = ObjInventario.DtResultados.FiltraParametros("CantidadAlmacen = 0") + Else + ErrorMovInv = True + End If + + If Not ErrorMovInv Then + If DtDevRem.Rows.Count > 0 Then + For Each DrMovtos As DataRow In DtDevRem.FiltraParametros("", "CveRem", {"CveRem"}).Rows + If Not ObjInventario.ActualizarEsDevolucionVenta(DrMovtos("CveRem").ToString.ToEntero, 2) Then + TextoError = "Ocurrió un error al hacer la devolución hacia la remision. Por favor vuelva a intentar." + ErrorMovInv = True + Exit For + End If + Next + End If + Else + TextoError = "Ocurrió un error al hacer la devolucion a remisión. Por favor vuelva a intentar." + ErrorMovInv = True + End If + + End If + 'QUEMA DEVOLUCION | QUEMA = LA QUITA DE PENDIENTE POR RECIBIR (DEVOLVER) If Not ErrorMovInv And EsDevolucionVenta = 1 Then If Not ObjVentas.UpdateVentasDevolucionAlmacen(2, CveVentaSurtir) Then - TextoError = "Ocurrió un error al hacer la devolucion. Por favor vuelva a intentar." + TextoError = "Ocurrió un error al hacer la devolución. Por favor vuelva a intentar." ErrorMovInv = True End If End If diff --git a/Inventarios/RecepcionUsados.aspx b/Inventarios/RecepcionUsados.aspx index 10c7f1c90..ba194c182 100644 --- a/Inventarios/RecepcionUsados.aspx +++ b/Inventarios/RecepcionUsados.aspx @@ -105,7 +105,7 @@
- Entrada + Entrada Salida
diff --git a/Inventarios/RecepcionUsados.aspx.vb b/Inventarios/RecepcionUsados.aspx.vb index 7fe120eaa..381d6ef3c 100644 --- a/Inventarios/RecepcionUsados.aspx.vb +++ b/Inventarios/RecepcionUsados.aspx.vb @@ -1066,10 +1066,10 @@ Partial Class Inventarios_RecepcionUsados For Each Dr As DataRow In DtMovimientos.Rows - If CveConcepto = 2 AndAlso DdlMoneda.SelectedValue.ToEntero = 2 Then - ImporteConcepto = Dr("PU").ToString.ToDouble * GlobalTipoCambio(TxtFecha.Text.ToDate) - Else - ImporteConcepto = Dr("PU").ToString.ToDouble + If CveConcepto = 42 AndAlso DdlMoneda.SelectedValue.ToEntero = 2 Then + ImporteConcepto = Dr("PU").ToString.ToDouble * GlobalTipoCambio(TxtFecha.Text.ToDate) + Else + ImporteConcepto = Dr("PU").ToString.ToDouble End If If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, ImporteConcepto, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, Dr("Observaciones").ToString, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then @@ -1083,10 +1083,10 @@ Partial Class Inventarios_RecepcionUsados ErrorMovInv = True Exit For End If - 'si es selectedvalue = 2, es entrada ,3 -salida - Dim CveConceptoUsados As Integer = If(RBLOpcion.SelectedValue.ToEntero = 2, 1, 2) + 'si es selectedvalue = 42, es entrada ,3 -salida + Dim CveConceptoUsados As Integer = If(RBLOpcion.SelectedValue.ToEntero = 42, 1, 2) - If RBLOpcion.SelectedValue.ToEntero = 2 AndAlso EsDistribuidor Then + If RBLOpcion.SelectedValue.ToEntero = 42 AndAlso EsDistribuidor Then If Not ObjAcum.DistribuidorMovtosAdd(DdlClientes.SelectedValue.ToEntero, Dr("Cantidad").ToString.ToEntero(), Dr("CveTamaño").ToString.ToEntero, CveConceptoUsados, CveVenta, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 0, Dr("Observaciones").ToString, CveMovimiento:=CveMovimiento) Then diff --git a/RH/CatPersonalRequerido.aspx.vb b/RH/CatPersonalRequerido.aspx.vb index 019aaef2d..a4caefa1a 100644 --- a/RH/CatPersonalRequerido.aspx.vb +++ b/RH/CatPersonalRequerido.aspx.vb @@ -64,6 +64,8 @@ Partial Class RH_CatPersonalRequerido CargaProyectos() CargaTurno() + CargaDepartamento() + ReqProyectoDdl.SelectedValueExist(-1) ReqSubProyectoDdl.SelectedValueExist(-1) ReqTurnoDdl.SelectedValueExist(-1) diff --git a/Ventas/ActualizarPrecios.aspx b/Ventas/ActualizarPrecios.aspx index e5afac7e9..f1a40e0eb 100644 --- a/Ventas/ActualizarPrecios.aspx +++ b/Ventas/ActualizarPrecios.aspx @@ -34,7 +34,7 @@
- +
@@ -303,7 +303,7 @@
- +
diff --git a/Ventas/ActualizarPrecios.aspx.vb b/Ventas/ActualizarPrecios.aspx.vb index 1969944e1..44eda61c6 100644 --- a/Ventas/ActualizarPrecios.aspx.vb +++ b/Ventas/ActualizarPrecios.aspx.vb @@ -73,18 +73,27 @@ Partial Class Ventas_ActualizarPrecios DDlClasificacion.Items.Insert(0, New ListItem("Todos", "-1")) End Sub - Public Sub CargaPreciosLista() + Public Sub CargaPreciosLista() + + DdlPrecioLista.ITEMS.CLEAR Dim ObjVta As New ClsVentas If ObjVta.GetPrecioListas(UsuarioActual.CveEmpresa) Then DdlPrecioLista.DataSource = ObjVta.DtResultados.Copy() DdlPrecioListaCarga.DataSource = ObjVta.DtResultados.Copy() End If - ObjVta.Dispose() - + ObjVta.Dispose() + + DdlPrecioLista.DataBind() - DdlPrecioListaCarga.DataBind() + DdlPrecioListaCarga.DataBind() + + DdlPrecioLista.Items.Insert(0, New ListItem("Seleccione", "-1")) + If UsuarioActual.CveEmpresa.Contiene(1, 140) Then + DdlPrecioLista.Items.Insert(0, New ListItem("Sin Precio Lista", "-2")) + DdlPrecioListaCarga.Items.Insert(0, New ListItem("Sin Precio Lista", "-2")) + End If + - DdlPrecioListaCarga.Items.Insert(0, New ListItem("Seleccione", "-1")) End Sub Public Sub CargaPS() @@ -193,7 +202,7 @@ Partial Class Ventas_ActualizarPrecios ObjPS.Dispose() BtnConsultar_Click(Nothing, Nothing) - RegistraScript("$('#divAgregar').modal('hide')") + RegistraScript("$('#divAgregar').modal('hide')") TxtImporte.Text = "" TxtPrecio.Text = "" TxtPorcentaje.Text = "" @@ -271,7 +280,7 @@ Partial Class Ventas_ActualizarPrecios .PS = row.DataKey("PS"), .Precio = row.FCTextBox("TxtPrecio").Text.ToDecimal() }).QueryToDataTable(True) - If DtExcel.Rows.Count < 2 Then + If DtExcel.Rows.Count < 1 Then Alert("No hay resutados en la busqueda.", TipoMensaje.MsgAdvertencia) Exit Sub End If @@ -350,7 +359,7 @@ Partial Class Ventas_ActualizarPrecios End Try If Not ErrorArchivo AndAlso dt IsNot Nothing Then - If DdlPrecioListaCarga.SelectedValue.ToEntero() <= 0 Then + If DdlPrecioListaCarga.SelectedValue.ToEntero() = -1 Then Alert("Debe Seleccionar la lista de precios a cargar. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If @@ -380,16 +389,26 @@ Partial Class Ventas_ActualizarPrecios Dim Correcto As Boolean = False Dim CvePS As Integer = DtPS.FiltroPrimeroValor("CvePS", String.Format("Codigo='{0}' AND CveEmpresa={1}", row(0).ToString(), UsuarioActual.CveEmpresa)) Dim CvePrecioLista As Integer = DdlPrecioListaCarga.SelectedValue.ToEntero() + Dim PrecioNuevo As Decimal = row("Precio").ToString().ToDecimal() + Dim Porcentaje As Decimal = -1 - If CvePS > 0 AndAlso CvePrecioLista > 0 Then - Dim Porcentaje As Decimal = -1 - Dim PrecioNuevo As Decimal = row("Precio").ToString().ToDecimal() + If CvePS > 0 AndAlso CvePrecioLista > 0 Then + + Correcto = ObjPS.UpdatePSPreciosLista(PrecioNuevo, CvePrecioLista, Porcentaje, CvePS, UsuarioActual.CveUsuario, DateTime.Now, True) If Correcto Then RowsCargados += 1 End If - Else - Correcto = False + Else + If CvePS > 0 AndAlso CvePrecioLista = -2 Then + Correcto = ObjPS.UpdatePSPrecios(PrecioNuevo, CvePrecioLista, Porcentaje, CvePS, UsuarioActual.CveUsuario, DateTime.Now, True) + If Correcto Then + RowsCargados += 1 + End If + Else + Correcto = False + End If + End If If Not Correcto Then ProductosNoCargados.AppendFormat("{0},", row("Producto / Servicio").ToString()) diff --git a/Ventas/PV.aspx.vb b/Ventas/PV.aspx.vb index 82bfc6d9f..950ef277f 100644 --- a/Ventas/PV.aspx.vb +++ b/Ventas/PV.aspx.vb @@ -1988,8 +1988,6 @@ Partial Class PV CalculaTotalesVenta() Alert("Eliminado Correctamente.", TipoMensaje.MsgInformacion) - 'JJMQ 20160506: Se agrego para la validacion de pago de contado. - 'CVImporteContado.ValueToCompare = TxtTotal.Text.Replace(",", "") UpContado.Update() End Sub @@ -3071,7 +3069,7 @@ Partial Class PV TmpDT.Columns.Add("EsCargo", GetType(Boolean)) TmpDT.Columns.Add("PUOriginal", GetType(Decimal)) - + TmpDT.Columns.Add("ConsecPSPadre", GetType(Integer)) End Sub @@ -3264,7 +3262,8 @@ Partial Class PV Optional SerieLote As String = "", Optional TiempoEntrega As String = "", Optional EntregaDirecta As Integer = 0, Optional CveContratoDetalle As Integer = 0, Optional CveVentaDetalle As Integer = 0, Optional CveMovimientoDetallePedido As Integer = 0, Optional CveOrdenCompraDetalle As Integer = 0, Optional CveVentaDetalleRemision As Integer = 0, Optional CveVentaDetalleCotizacion As Integer = 0, - Optional CuentaPredial As String = "", Optional RegeneraIEPS As Boolean = True, Optional CveVentaDetallePedido2 As Integer = 0, Optional EsCargo As Boolean = False) As Integer + Optional CuentaPredial As String = "", Optional RegeneraIEPS As Boolean = True, Optional CveVentaDetallePedido2 As Integer = 0, Optional EsCargo As Boolean = False, + Optional ConsecPSPadre As Integer = -1) As Integer Dim Retorno As Integer = -1 If Not CvePS > 0 Then @@ -3427,6 +3426,10 @@ Partial Class PV Row("CuentaPredial") = CuentaPredial Row("EsCargo") = EsCargo + If EsCargo AndAlso ConsecPSPadre >= 0 Then + Row("ConsecPSPadre") = ConsecPSPadre + End If + If UsuarioActual.CveEmpresa = 119 Then If Not RemisionesLista.Count > 0 Then 'SI VIENE DE REMISION NO SE CONSIDERA @@ -5213,8 +5216,6 @@ Partial Class PV Exit Sub End If Try - - If DdlTipoUso.SelectedValue.ToEntero > 0 AndAlso DdlPSAjuste.SelectedValue.ToEntero > 0 AndAlso TxtMesesUso.Text <> "" AndAlso DdlPS.SelectedValue.ToEntero > 0 Then Dim CveMarca As Integer = -1 @@ -5570,177 +5571,148 @@ Partial Class PV CalculaTotalesVenta() End Sub Private Function CalculaUsados(Consec As Integer) As List(Of Integer) - - 'If Modalidad = "U" Then - ' EliminarUsados(Consec) - 'End If + If Modalidad = "U" Then + EliminarUsados(Consec) + End If Dim ListaPScargo As New List(Of Integer) - Dim DTTamanios As New DataTable - Dim ObjAcum As New ClsAcumuladores - - If ObjAcum.TamañoGet(-1, UsuarioActual.CveEmpresa) Then - - DTTamanios = ObjAcum.DtResultados - Dim DTCvePSCostos = ObjAcum.DtResultados.FiltraParametros("", "", {"CvePSCargo"}) + Dim DTTamanios As DataTable = GlobalDTAcumTamaños() + Dim DTCvePSCostos = DTTamanios.FiltraParametros("", "", {"CvePSCargo"}) - Dim CveUnidadMedidaPSA As Integer = -1 - Dim UnidadMedidaPSA As String = "Unidad" - Dim CveClacificacionPSA As Integer = -1 + Dim CveUnidadMedidaPSA As Integer = -1 + Dim UnidadMedidaPSA As String = "Unidad" + Dim CveClacificacionPSA As Integer = -1 - Dim ClacificacionPSA As String = "" + Dim ClacificacionPSA As String = "" - Dim CveSubProyectoPSA As Integer = -1 - Dim SubProyectoPSA As String = "" + Dim CveSubProyectoPSA As Integer = -1 + Dim SubProyectoPSA As String = "" - Dim PSPSA As String = "" + Dim PSPSA As String = "" - Dim DTPSTemp As New DataTable '= TmpDT.Clone + Dim DTPSTemp As New DataTable '= TmpDT.Clone - DTPSTemp.Columns.Add("Cantidad", GetType(Integer)) - DTPSTemp.Columns.Add("CveUnidadMedida", GetType(Integer)) - DTPSTemp.Columns.Add("UnidadMedida", GetType(String)) - DTPSTemp.Columns.Add("CveClacificacion", GetType(Integer)) - DTPSTemp.Columns.Add("Clacificacion", GetType(String)) - DTPSTemp.Columns.Add("CvePS", GetType(Integer)) - DTPSTemp.Columns.Add("PS", GetType(String)) - DTPSTemp.Columns.Add("PU", GetType(Decimal)) - DTPSTemp.Columns.Add("CveSubProyecto", GetType(Integer)) - DTPSTemp.Columns.Add("SubProyecto", GetType(String)) + DTPSTemp.Columns.Add("Cantidad", GetType(Integer)) + DTPSTemp.Columns.Add("CveUnidadMedida", GetType(Integer)) + DTPSTemp.Columns.Add("UnidadMedida", GetType(String)) + DTPSTemp.Columns.Add("CveClacificacion", GetType(Integer)) + DTPSTemp.Columns.Add("Clacificacion", GetType(String)) + DTPSTemp.Columns.Add("CvePS", GetType(Integer)) + DTPSTemp.Columns.Add("PS", GetType(String)) + DTPSTemp.Columns.Add("PU", GetType(Decimal)) + DTPSTemp.Columns.Add("CveSubProyecto", GetType(Integer)) + DTPSTemp.Columns.Add("SubProyecto", GetType(String)) + DTPSTemp.Columns.Add("ConsecPSPadre", GetType(Integer)) - Dim ObjProductosServicios As New ClsProductosServicios() - For Each DrowPartidas As DataRow In TmpDT.Select($"Consec = {Consec}") + Dim ObjProductosServicios As New ClsProductosServicios() + For Each DrowPartidas As DataRow In TmpDT.Select($"Consec = {Consec}") - Dim CveTamanioTemp As Integer = DrowPartidas("CveTamaño").ToString.ToEntero + Dim CveTamanioTemp As Integer = DrowPartidas("CveTamaño").ToString.ToEntero - If CveTamanioTemp > 0 Then + If CveTamanioTemp > 0 Then - Dim DTTamanioTemp As New DataTable - Dim CvePsTemp As Integer = DTTamanios.FiltraParametros($"CveTamaño = { CveTamanioTemp } ").Rows(0)("CvePSCargo").ToString.ToEntero + Dim DTTamanioTemp As New DataTable + Dim CvePsTemp As Integer = DTTamanios.FiltraParametros($"CveTamaño = { CveTamanioTemp } ").Rows(0)("CvePSCargo").ToString.ToEntero - CveSubProyectoPSA = DrowPartidas("CveSubProyecto").ToString.ToEntero - SubProyectoPSA = DrowPartidas("SubProyecto").ToString - - If ObjProductosServicios.GetPS(CvePsTemp, -1, UsuarioActual.CveEmpresa) Then - CveUnidadMedidaPSA = ObjProductosServicios.CveUnidadMedida - CveClacificacionPSA = ObjProductosServicios.CveClasificacion - UnidadMedidaPSA = ObjProductosServicios.DtResultados.FiltroPrimeroValor("UnidadMedida") - PSPSA = ObjProductosServicios.PS - End If - - - If UsuarioActual.Empresa.UsaAC Then - ClacificacionPSA = GlobalDTClasificaciones(UsuarioActual.CveEmpresa, UsoClasificacion:=If(UsuarioActual.Empresa.UsaContabilidad, CveClacificacionPSA, -1)).FiltroPrimeroValor("Clasificacion", " Codigo = '' OR Codigo IS NULL ", Orderby:="Clasificacion") - Else - ClacificacionPSA = GlobalDTClasificaciones(UsuarioActual.CveEmpresa, UsoClasificacion:=If(UsuarioActual.Empresa.UsaContabilidad, CveClacificacionPSA, -1)).FiltroPrimeroValor("Clasificacion", Orderby:="Clasificacion") - End If - - Dim Cargo As Decimal = DTTamanios.FiltroPrimeroValor("Cargo", $" CveTamaño = { CveTamanioTemp }").ToDecimal - - - If DTPSTemp.FiltraParametros($"CvePs = { CvePsTemp }").Rows.Count > 0 Then - - For Each dRowUpdate As DataRow In DTPSTemp.Rows - - If (dRowUpdate("CvePS").ToString.ToEntero = CvePsTemp) Then - dRowUpdate("Cantidad") = dRowUpdate("Cantidad").ToString.ToDecimal + DrowPartidas("Cantidad").ToString.ToDecimal - dRowUpdate("PU") = Cargo ' dRowUpdate("Total").ToString.ToDecimal + ImporteCargo - End If - Next - - DTPSTemp.AcceptChanges() - - Else - Dim dRowNuevo As DataRow = DTPSTemp.NewRow - - dRowNuevo("Cantidad") = DrowPartidas("Cantidad").ToString.ToDecimal - dRowNuevo("PU") = Cargo - dRowNuevo("CveUnidadMedida") = CveUnidadMedidaPSA - dRowNuevo("UnidadMedida") = UnidadMedidaPSA - dRowNuevo("CveClacificacion") = CveClacificacionPSA - dRowNuevo("Clacificacion") = ClacificacionPSA - dRowNuevo("CvePS") = CvePsTemp - dRowNuevo("PS") = PSPSA - - dRowNuevo("CveSubProyecto") = DrowPartidas("CveSubProyecto").ToString.ToEntero - dRowNuevo("SubProyecto") = DrowPartidas("SubProyecto").ToString - - DTPSTemp.Rows.Add(dRowNuevo) - DTPSTemp.AcceptChanges() - End If + CveSubProyectoPSA = DrowPartidas("CveSubProyecto").ToString.ToEntero + SubProyectoPSA = DrowPartidas("SubProyecto").ToString + If ObjProductosServicios.GetPS(CvePsTemp, -1, UsuarioActual.CveEmpresa) Then + CveUnidadMedidaPSA = ObjProductosServicios.CveUnidadMedida + CveClacificacionPSA = ObjProductosServicios.CveClasificacion + UnidadMedidaPSA = ObjProductosServicios.DtResultados.FiltroPrimeroValor("UnidadMedida") + PSPSA = ObjProductosServicios.PS + End If + + + If UsuarioActual.Empresa.UsaAC Then + ClacificacionPSA = GlobalDTClasificaciones(UsuarioActual.CveEmpresa, UsoClasificacion:=If(UsuarioActual.Empresa.UsaContabilidad, CveClacificacionPSA, -1)).FiltroPrimeroValor("Clasificacion", " Codigo = '' OR Codigo IS NULL ", Orderby:="Clasificacion") + Else + ClacificacionPSA = GlobalDTClasificaciones(UsuarioActual.CveEmpresa, UsoClasificacion:=If(UsuarioActual.Empresa.UsaContabilidad, CveClacificacionPSA, -1)).FiltroPrimeroValor("Clasificacion", Orderby:="Clasificacion") + End If + + Dim Cargo As Decimal = DTTamanios.FiltroPrimeroValor("Cargo", $" CveTamaño = { CveTamanioTemp }").ToDecimal + + + If DTPSTemp.FiltraParametros($"CvePs = { CvePsTemp }").Rows.Count > 0 Then + + For Each dRowUpdate As DataRow In DTPSTemp.Rows + + If (dRowUpdate("CvePS").ToString.ToEntero = CvePsTemp) Then + dRowUpdate("Cantidad") = dRowUpdate("Cantidad").ToString.ToDecimal + DrowPartidas("Cantidad").ToString.ToDecimal + dRowUpdate("PU") = Cargo ' dRowUpdate("Total").ToString.ToDecimal + ImporteCargo + End If + Next + + DTPSTemp.AcceptChanges() + + Else + Dim dRowNuevo As DataRow = DTPSTemp.NewRow + + dRowNuevo("Cantidad") = DrowPartidas("Cantidad").ToString.ToDecimal + dRowNuevo("PU") = Cargo + dRowNuevo("CveUnidadMedida") = CveUnidadMedidaPSA + dRowNuevo("UnidadMedida") = UnidadMedidaPSA + dRowNuevo("CveClacificacion") = CveClacificacionPSA + dRowNuevo("Clacificacion") = ClacificacionPSA + dRowNuevo("CvePS") = CvePsTemp + dRowNuevo("PS") = PSPSA + + dRowNuevo("CveSubProyecto") = DrowPartidas("CveSubProyecto").ToString.ToEntero + dRowNuevo("SubProyecto") = DrowPartidas("SubProyecto").ToString + dRowNuevo("ConsecPSPadre") = Consec + + DTPSTemp.Rows.Add(dRowNuevo) + DTPSTemp.AcceptChanges() End If - Next - ObjProductosServicios.Dispose() - Dim ModalidadBack = Modalidad - 'CAMBIA LA MODALIDAD PARA AGREGAR LOS PS CARGO - If Modalidad = "U" Then - Modalidad = "A" End If + Next + ObjProductosServicios.Dispose() - For Each drowPsTamaños As DataRow In DTPSTemp.Rows - If drowPsTamaños("PU").ToString.ToDecimal > 0 Then - Dim Concec = AgregarProductoServicio(drowPsTamaños("Cantidad").ToString.ToEntero, drowPsTamaños("CveUnidadMedida").ToString.ToEntero, drowPsTamaños("UnidadMedida").ToString, + Dim ModalidadBack = Modalidad + 'CAMBIA LA MODALIDAD PARA AGREGAR LOS PS CARGO + If Modalidad = "U" Then + Modalidad = "A" + End If + + For Each drowPsTamaños As DataRow In DTPSTemp.Rows + If drowPsTamaños("PU").ToString.ToDecimal > 0 Then + Dim Concec = AgregarProductoServicio(drowPsTamaños("Cantidad").ToString.ToEntero, drowPsTamaños("CveUnidadMedida").ToString.ToEntero, drowPsTamaños("UnidadMedida").ToString, drowPsTamaños("CveClacificacion").ToString.ToEntero, drowPsTamaños("Clacificacion").ToString, drowPsTamaños("CvePS").ToString.ToEntero, drowPsTamaños("PS").ToString, "", drowPsTamaños("PU").ToString.ToDecimal, 0, -1, "", drowPsTamaños("CveSubProyecto").ToString.ToEntero, - drowPsTamaños("SubProyecto").ToString, EsCargo:=True) - If Consec > 0 Then - ListaPScargo.Add(drowPsTamaños("CvePS").ToString.ToEntero) - End If + drowPsTamaños("SubProyecto").ToString, EsCargo:=True, ConsecPSPadre:=drowPsTamaños("ConsecPSPadre").ToString.ToEntero) + If Consec > 0 Then + ListaPScargo.Add(drowPsTamaños("CvePS").ToString.ToEntero) End If - Next + End If + Next - Modalidad = ModalidadBack - End If - ObjAcum.Dispose() + Modalidad = ModalidadBack Return ListaPScargo End Function Private Sub EliminarUsados(Consec As Integer) - Dim DTTamanios As New DataTable - Dim ObjAcum As New ClsAcumuladores + 'ELIMINAR EL USADO EXTRAS + For Each drow As DataRow In TmpDT.Select($"ConsecPSPadre ={Consec}") + drow.Delete() + Next - If ObjAcum.TamañoGet(-1, UsuarioActual.CveEmpresa) Then - - DTTamanios = ObjAcum.DtResultados - Dim DTCvePSCostos = ObjAcum.DtResultados.FiltraParametros("", "", {"CvePSCargo"}) - - If Not TmpDT.Columns.Contains("Eliminar") Then - TmpDT.Columns.Add("Eliminar", GetType(Integer)) - End If - - For Each drow As DataRow In TmpDT.FiltraParametros($"Consec ={Consec}").Rows - For Each drow2 As DataRow In DTCvePSCostos.Rows - If drow("CvePS").ToString.ToEntero = drow2("CvePSCargo").ToString.ToEntero Then - drow("Eliminar") = 1 - Exit For - End If - Next + 'ELIMINAR LOS USADOS QUE SE MANDAN A RECEPCION + For Each drow As DataRow In TmpDT.Select($"Consec ={Consec}") + For Each RowRecepcionUsados As DataRow In TmpDTRecepcionUsados.Rows + If (RowRecepcionUsados("CvePSRelacionado").ToString() = drow("CvePS").ToString()) Then + RowRecepcionUsados.Delete() + End If Next + Next - Dim TmpDTView As New DataView(TmpDT) - TmpDTView.RowFilter = "Eliminar = 1" - - For Each dRowEliminar As DataRowView In TmpDTView - For Each RowRecepcionUsados As DataRow In TmpDTRecepcionUsados.Rows - If (RowRecepcionUsados("CvePS").ToString() = dRowEliminar("CvePS").ToString()) Then - RowRecepcionUsados.Delete() - End If - Next - dRowEliminar.Delete() - Next - - TmpDT.AcceptChanges() - TmpDTRecepcionUsados.AcceptChanges() - - End If - ObjAcum.Dispose() - + TmpDT.AcceptChanges() + TmpDTRecepcionUsados.AcceptChanges() End Sub #End Region diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index 271b56f72..b5ab35f7b 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -4292,7 +4292,7 @@ Partial Class Ventas Retorno = True Else - CveVenta = -1 + ViewState("CveVenta") = -1 Alert("El documento solicitado no existe, favor de revisar su búsqueda.", TipoMensaje.MsgAdvertencia) End If End If @@ -5748,10 +5748,10 @@ Partial Class Ventas Existencia = ObjInventarios.GetExistenciasPS(CvePS, -1, UsuarioActual.CveEmpresa, -1, FechaMovto:=DateTime.Today.AddDays(1).ToString("yyyy/MM/dd HH:mm"), CveSubProyecto:=DdlSubProyectoDatos.SelectedValue.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeAdelantado:=1, PendientePorSurtir:=1, RestringirAlmacenes:=1, ExcluyeApartados:=-1) End If - Dim Costo As Decimal = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero) + Dim Costo As Decimal = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero, CveTipoAlmacen:=1) 'si el costo es cero, puede ser que no halla movimientos del producto, en esa sucursal. y se volverá a sacar sin especificar sucursal - If Costo = 0 Then Costo = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, -1) + If Costo = 0 Then Costo = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, -1, CveTipoAlmacen:=1) ObjInventarios.Dispose() Dim PrecioMinimo As Decimal = 0 @@ -5900,7 +5900,7 @@ Partial Class Ventas Dim TotalCalculableImpuestos As Decimal = ((Cantidad * PU) - (Descuento)) Dim TotalCalculableImpuestosIVA As Decimal = 0 - TotalCalculableImpuestosIVA = TotalCalculableImpuestos * (1 + TmpDT.Rows(e.RowIndex)("IEPSPorcentaje").ToString.ToDecimal) + TotalCalculableImpuestosIVA = TotalCalculableImpuestos * (1 + TmpDT.Rows(e.RowIndex)("PorcentajeIEPS").ToString.ToDecimal) TmpDT.Rows(e.RowIndex)("CveUM") = GvPS.Rows(e.RowIndex).FCDropDownList("DdlUnidadMedida").SelectedValue.ToEntero @@ -6352,7 +6352,7 @@ Partial Class Ventas EsValidoMayor = False EsValidoPU = True PU = dr("PU").ToString.ToDecimal * If(DdlMoneda.SelectedValue.ToEntero = 1, 1, TxtTipoCambio.Text.ToDecimal) - Costo = ObjInventarios.GetCostoPS(dr("CvePS").ToString.ToEntero, dr("Cantidad").ToString.ToDouble, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero) + Costo = ObjInventarios.GetCostoPS(dr("CvePS").ToString.ToEntero, dr("Cantidad").ToString.ToDouble, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero, CveTipoAlmacen:=1) Dim PrecioMinimo As Decimal = 0 'RMF. condicion temporal, para reubicación, precio mínimo @@ -9121,7 +9121,12 @@ Partial Class Ventas 'Si es devolucion se agregan a la tabla de Vta_VentasDetalleDevolucion If factura.AplicaDevolucion Then If Not ObjVentas.AddVentaDetalleDevolucion(Row("CveVentaDetalle").ToString.ToEntero, ObjVentas.CveVentaDetalle, Row("Cantidad").ToString.ToDouble) Then - ErrorList.Add("Ocurrió un error al agregar la venta detalle devolucion.") + ErrorList.Add("Ocurrió un error al agregar la venta detalle devolución.") + End If + If ErrorList.Count = 0 Then + If Not ObjEventos.AddEventoBitacora(String.Format("Se aplicó una devolución en Folio: {1}", factura.CveVenta, factura.SerieFolio), "-1", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveVenta:=CveVentaDevolucion) Then + ErrorList.Add("Ocurrió un error al agregar la bitacora de devolución.") + End If End If End If @@ -13054,9 +13059,9 @@ Partial Class Ventas If PrecioSugerido = 0 Then Dim ObjInventarios As New ClsInventarios - Dim CostoPS = ObjInventarios.GetCostoPS(CvePSParametro, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero) + Dim CostoPS = ObjInventarios.GetCostoPS(CvePSParametro, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero, CveTipoAlmacen:=1) 'si el costo es cero, puede ser que no halla movimientos del producto, en esa sucursal. y se volverá a sacar sin especificar sucursal - If CostoPS = 0 Then CostoPS = ObjInventarios.GetCostoPS(CvePSParametro, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, -1) + If CostoPS = 0 Then CostoPS = ObjInventarios.GetCostoPS(CvePSParametro, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, -1, CveTipoAlmacen:=1) ObjInventarios.Dispose() If CostoPS > 0 And PorcentajePrecio > 0 Then PrecioSugerido = ((PorcentajePrecio / 100) + 1) * CostoPS @@ -13631,10 +13636,10 @@ Partial Class Ventas If UsuarioActual.Empresa.UsaInventarios AndAlso CveTipoPS = 2 AndAlso (DdlTipoComprobante.SelectedValue.Contiene("Rem", "Ing", "PA") Or (DdlTipoComprobante.SelectedValue.Contiene("Cot") And UsuarioActual.CveEmpresa.Contiene(119))) Then Dim ObjInventarios As New ClsInventarios Dim Existencia As Decimal = ObjInventarios.GetExistenciasPS(CvePS, CveUM, UsuarioActual.CveEmpresa, -1, FechaMovto:=DateTime.Today.AddDays(1).ToString("yyyy/MM/dd HH:mm"), CveSubProyecto:=DdlSubProyectoDatos.SelectedValue.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeAdelantado:=1, PendientePorSurtir:=1, RestringirAlmacenes:=1, ExcluyeApartados:=-1) - Dim Costo As Decimal = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero) + Dim Costo As Decimal = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero, CveTipoAlmacen:=1) 'si el costo es cero, puede ser que no halla movimientos del producto, en esa sucursal. y se volverá a sacar sin especificar sucursal - If Costo = 0 Then Costo = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, -1) + If Costo = 0 Then Costo = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, -1, CveTipoAlmacen:=1) ObjInventarios.Dispose() Dim PrecioMinimo As Decimal = 0 @@ -14238,10 +14243,10 @@ Partial Class Ventas PrecioSugerido = ObjPS.DtResultados.FiltroPrimeroValor("PrecioLista").ToDecimal If PrecioSugerido = 0 Then Dim ObjInventarios As New ClsInventarios - Dim CostoPS = ObjInventarios.GetCostoPS(CvePSAdicional, DrPoliza("Cantidad").ToString.ToDecimal, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero) + Dim CostoPS = ObjInventarios.GetCostoPS(CvePSAdicional, DrPoliza("Cantidad").ToString.ToDecimal, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero, CveTipoAlmacen:=1) 'si el costo es cero, puede ser que no halla movimientos del producto, en esa sucursal. y se volverá a sacar sin especificar sucursal - If CostoPS = 0 Then CostoPS = ObjInventarios.GetCostoPS(CvePSAdicional, DrPoliza("Cantidad").ToString.ToDecimal, -1, "-1", TxtFecha.Text.ToDate, -1) + If CostoPS = 0 Then CostoPS = ObjInventarios.GetCostoPS(CvePSAdicional, DrPoliza("Cantidad").ToString.ToDecimal, -1, "-1", TxtFecha.Text.ToDate, -1, CveTipoAlmacen:=1) ObjInventarios.Dispose() Dim PorcentajePrecio = ObjPS.DtResultados.FiltroPrimeroValor("Porcentaje").ToDecimal @@ -23173,6 +23178,8 @@ Partial Class Ventas 'CUANDO ES CREAR APARTIR DE SE LIMPIAN FUNCIONALIDADES DE DOCUMENTOS YA REGISTRADOS BtnGenerarRemision.Visible = False + BtnEditarRemision.Visible = False + BtnPermisoEditarRemision.Visible = False BtnPermisoEditarCotizacion.Visible = False BtnEditarCotizacion.Visible = False BtnGenerarOS.Visible = False @@ -23480,154 +23487,136 @@ Partial Class Ventas Private Sub CalculaUsados() + If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Rem") Then + Dim DTTamanios As DataTable = GlobalDTAcumTamaños() + + Dim DTCvePSCostos As DataTable + DTCvePSCostos = DTTamanios.FiltraParametros("", "", {"CvePSCargo"}) + + If Not TmpDT.Columns.Contains("Eliminar") Then + TmpDT.Columns.Add("Eliminar", GetType(Integer)) + End If + + For Each drow As DataRow In TmpDT.Rows + For Each drow2 As DataRow In DTCvePSCostos.Rows + If drow("CvePS").ToString.ToEntero = drow2("CvePSCargo").ToString.ToEntero Then + drow("Eliminar") = 1 + Exit For + End If + Next + Next + + Dim TmpDTView As New DataView(TmpDT) + TmpDTView.RowFilter = "Eliminar = 1" + + For Each dRowEliminar As DataRowView In TmpDTView + dRowEliminar.Delete() + Next + + TmpDT.AcceptChanges() + If ViewState("CargoUsado").ToString = "False" Then + Exit Sub + End If + + Dim CveUnidadMedidaPSA As Integer = -1 + Dim UnidadMedidaPSA As String = "Unidad" + Dim CveClacificacionPSA As Integer = -1 + + Dim ClacificacionPSA As String = "" + + Dim CveSubProyectoPSA As Integer = -1 + Dim SubProyectoPSA As String = "" + + Dim PSPSA As String = "" + + Dim DTPSTemp As New DataTable '= TmpDT.Clone + 'AgregarProductoServicio(1, CveUnidadMedidaPSA, UnidadMedidaPSA, CveClacificacionPSA, ClacificacionPSA, CvePSPSA, PSPSA, "", ImporteCargo, 0, -1, "", CveSubProyectoPSA, SubProyectoPSA) + DTPSTemp.Columns.Add("Cantidad", GetType(Integer)) + DTPSTemp.Columns.Add("CveUnidadMedida", GetType(Integer)) + DTPSTemp.Columns.Add("UnidadMedida", GetType(String)) + DTPSTemp.Columns.Add("CveClacificacion", GetType(Integer)) + DTPSTemp.Columns.Add("Clacificacion", GetType(String)) + DTPSTemp.Columns.Add("CvePS", GetType(Integer)) + DTPSTemp.Columns.Add("PS", GetType(String)) + DTPSTemp.Columns.Add("PU", GetType(Decimal)) + DTPSTemp.Columns.Add("CveSubProyecto", GetType(Integer)) + DTPSTemp.Columns.Add("SubProyecto", GetType(String)) + + For Each DrowPartidas As DataRow In TmpDT.Rows + Dim CveTamanioTemp As Integer = DrowPartidas("CveTamaño").ToString.ToEntero + + If CveTamanioTemp > 0 Then + + Dim DTTamanioTemp As New DataTable + Dim CvePsTemp As Integer = DTTamanios.FiltraParametros($"CveTamaño = { CveTamanioTemp } ").Rows(0)("CvePSCargo").ToString.ToEntero - '' If ClienteEsDistribuidor Then + CveSubProyectoPSA = DrowPartidas("CveSubProyecto").ToString.ToEntero + SubProyectoPSA = DrowPartidas("SubProyecto").ToString - Dim DTTamanios As DataTable = Nothing - ' Dim ObjAcum As New ClsAcumuladores + Dim ObjProductosServicios As New ClsProductosServicios() + If ObjProductosServicios.GetPS(CvePsTemp, -1, UsuarioActual.CveEmpresa) Then + CveUnidadMedidaPSA = ObjProductosServicios.CveUnidadMedida + CveClacificacionPSA = ObjProductosServicios.CveClasificacion + UnidadMedidaPSA = ObjProductosServicios.DtResultados.FiltroPrimeroValor("UnidadMedida") + PSPSA = ObjProductosServicios.PS + End If + ObjProductosServicios.Dispose() - 'If ObjAcum.TamañoGet(-1, UsuarioActual.CveEmpresa) Then + If UsuarioActual.Empresa.UsaAC Then + ClacificacionPSA = GlobalDTClasificaciones(UsuarioActual.CveEmpresa, UsoClasificacion:=If(UsuarioActual.Empresa.UsaContabilidad, CveClacificacionPSA, -1)).FiltroPrimeroValor("Clasificacion", " Codigo = '' OR Codigo IS NULL ", Orderby:="Clasificacion") + Else + ClacificacionPSA = GlobalDTClasificaciones(UsuarioActual.CveEmpresa, UsoClasificacion:=If(UsuarioActual.Empresa.UsaContabilidad, CveClacificacionPSA, -1)).FiltroPrimeroValor("Clasificacion", Orderby:="Clasificacion") + End If - DTTamanios = GlobalDTAcumTamaños() 'ObjAcum.DtResultados + Dim Cargo As Decimal = DTTamanios.FiltroPrimeroValor("Cargo", $" CveTamaño = { CveTamanioTemp }").ToDecimal - Dim DTCvePSCostos As DataTable - DTCvePSCostos = DTTamanios.FiltraParametros("", "", {"CvePSCargo"}) - If Not TmpDT.Columns.Contains("Eliminar") Then - TmpDT.Columns.Add("Eliminar", GetType(Integer)) - End If + If DTPSTemp.FiltraParametros($"CvePs = { CvePsTemp }").Rows.Count > 0 Then + + For Each dRowUpdate As DataRow In DTPSTemp.Rows + + If (dRowUpdate("CvePS").ToString.ToEntero = CvePsTemp) Then + dRowUpdate("Cantidad") = dRowUpdate("Cantidad").ToString.ToDecimal + DrowPartidas("Cantidad").ToString.ToDecimal + dRowUpdate("PU") = Cargo ' dRowUpdate("Total").ToString.ToDecimal + ImporteCargo + End If + Next + + DTPSTemp.AcceptChanges() + + Else + Dim dRowNuevo As DataRow = DTPSTemp.NewRow + + dRowNuevo("Cantidad") = DrowPartidas("Cantidad").ToString.ToDecimal + dRowNuevo("PU") = Cargo + dRowNuevo("CveUnidadMedida") = CveUnidadMedidaPSA + dRowNuevo("UnidadMedida") = UnidadMedidaPSA + dRowNuevo("CveClacificacion") = CveClacificacionPSA + dRowNuevo("Clacificacion") = ClacificacionPSA + dRowNuevo("CvePS") = CvePsTemp + dRowNuevo("PS") = PSPSA + + dRowNuevo("CveSubProyecto") = DrowPartidas("CveSubProyecto").ToString.ToEntero + dRowNuevo("SubProyecto") = DrowPartidas("SubProyecto").ToString + + DTPSTemp.Rows.Add(dRowNuevo) + DTPSTemp.AcceptChanges() + End If - For Each drow As DataRow In TmpDT.Rows - For Each drow2 As DataRow In DTCvePSCostos.Rows - If drow("CvePS").ToString.ToEntero = drow2("CvePSCargo").ToString.ToEntero Then - drow("Eliminar") = 1 - Exit For End If Next - Next - - Dim TmpDTView As New DataView(TmpDT) - TmpDTView.RowFilter = "Eliminar = 1" - - For Each dRowEliminar As DataRowView In TmpDTView - dRowEliminar.Delete() - - Next - TmpDT.AcceptChanges() - If ViewState("CargoUsado").ToString = "False" Then - Exit Sub + For Each drowPsTamaños As DataRow In DTPSTemp.Rows + Modalidad = "A" + If drowPsTamaños("PU").ToString.ToDecimal > 0 Then + AgregarProductoServicio(drowPsTamaños("Cantidad").ToString.ToEntero, drowPsTamaños("CveUnidadMedida").ToString.ToEntero, drowPsTamaños("UnidadMedida").ToString, + drowPsTamaños("CveClacificacion").ToString.ToEntero, drowPsTamaños("Clacificacion").ToString, drowPsTamaños("CvePS").ToString.ToEntero, + drowPsTamaños("PS").ToString, "", drowPsTamaños("PU").ToString.ToDecimal, 0, -1, "", drowPsTamaños("CveSubProyecto").ToString.ToEntero, + drowPsTamaños("SubProyecto").ToString) + End If + Next End If - - Dim ObjProductosServicios As New ClsProductosServicios() - - Dim CveUnidadMedidaPSA As Integer = -1 - Dim UnidadMedidaPSA As String = "Unidad" - Dim CveClacificacionPSA As Integer = -1 - - Dim ClacificacionPSA As String = "" - - Dim CveSubProyectoPSA As Integer = -1 - Dim SubProyectoPSA As String = "" - - Dim PSPSA As String = "" - - Dim DTPSTemp As New DataTable '= TmpDT.Clone - 'AgregarProductoServicio(1, CveUnidadMedidaPSA, UnidadMedidaPSA, CveClacificacionPSA, ClacificacionPSA, CvePSPSA, PSPSA, "", ImporteCargo, 0, -1, "", CveSubProyectoPSA, SubProyectoPSA) - DTPSTemp.Columns.Add("Cantidad", GetType(Integer)) - DTPSTemp.Columns.Add("CveUnidadMedida", GetType(Integer)) - DTPSTemp.Columns.Add("UnidadMedida", GetType(String)) - DTPSTemp.Columns.Add("CveClacificacion", GetType(Integer)) - DTPSTemp.Columns.Add("Clacificacion", GetType(String)) - DTPSTemp.Columns.Add("CvePS", GetType(Integer)) - DTPSTemp.Columns.Add("PS", GetType(String)) - DTPSTemp.Columns.Add("PU", GetType(Decimal)) - DTPSTemp.Columns.Add("CveSubProyecto", GetType(Integer)) - DTPSTemp.Columns.Add("SubProyecto", GetType(String)) - - For Each DrowPartidas As DataRow In TmpDT.Rows - Dim CveTamanioTemp As Integer = DrowPartidas("CveTamaño").ToString.ToEntero - - If CveTamanioTemp > 0 Then - - Dim DTTamanioTemp As New DataTable - Dim CvePsTemp As Integer = DTTamanios.FiltraParametros($"CveTamaño = { CveTamanioTemp } ").Rows(0)("CvePSCargo").ToString.ToEntero - - - CveSubProyectoPSA = DrowPartidas("CveSubProyecto").ToString.ToEntero - SubProyectoPSA = DrowPartidas("SubProyecto").ToString - - If ObjProductosServicios.GetPS(CvePsTemp, -1, UsuarioActual.CveEmpresa) Then - CveUnidadMedidaPSA = ObjProductosServicios.CveUnidadMedida - CveClacificacionPSA = ObjProductosServicios.CveClasificacion - UnidadMedidaPSA = ObjProductosServicios.DtResultados.FiltroPrimeroValor("UnidadMedida") - PSPSA = ObjProductosServicios.PS - End If - - - If UsuarioActual.Empresa.UsaAC Then - ClacificacionPSA = GlobalDTClasificaciones(UsuarioActual.CveEmpresa, UsoClasificacion:=If(UsuarioActual.Empresa.UsaContabilidad, CveClacificacionPSA, -1)).FiltroPrimeroValor("Clasificacion", " Codigo = '' OR Codigo IS NULL ", Orderby:="Clasificacion") - Else - ClacificacionPSA = GlobalDTClasificaciones(UsuarioActual.CveEmpresa, UsoClasificacion:=If(UsuarioActual.Empresa.UsaContabilidad, CveClacificacionPSA, -1)).FiltroPrimeroValor("Clasificacion", Orderby:="Clasificacion") - End If - - Dim Cargo As Decimal = DTTamanios.FiltroPrimeroValor("Cargo", $" CveTamaño = { CveTamanioTemp }").ToDecimal - - - If DTPSTemp.FiltraParametros($"CvePs = { CvePsTemp }").Rows.Count > 0 Then - - For Each dRowUpdate As DataRow In DTPSTemp.Rows - - If (dRowUpdate("CvePS").ToString.ToEntero = CvePsTemp) Then - dRowUpdate("Cantidad") = dRowUpdate("Cantidad").ToString.ToDecimal + DrowPartidas("Cantidad").ToString.ToDecimal - dRowUpdate("PU") = Cargo ' dRowUpdate("Total").ToString.ToDecimal + ImporteCargo - End If - Next - - DTPSTemp.AcceptChanges() - - Else - Dim dRowNuevo As DataRow = DTPSTemp.NewRow - - dRowNuevo("Cantidad") = DrowPartidas("Cantidad").ToString.ToDecimal - dRowNuevo("PU") = Cargo - dRowNuevo("CveUnidadMedida") = CveUnidadMedidaPSA - dRowNuevo("UnidadMedida") = UnidadMedidaPSA - dRowNuevo("CveClacificacion") = CveClacificacionPSA - dRowNuevo("Clacificacion") = ClacificacionPSA - dRowNuevo("CvePS") = CvePsTemp - dRowNuevo("PS") = PSPSA - - dRowNuevo("CveSubProyecto") = DrowPartidas("CveSubProyecto").ToString.ToEntero - dRowNuevo("SubProyecto") = DrowPartidas("SubProyecto").ToString - - DTPSTemp.Rows.Add(dRowNuevo) - DTPSTemp.AcceptChanges() - End If - - End If - Next - - - For Each drowPsTamaños As DataRow In DTPSTemp.Rows - Modalidad = "A" - If drowPsTamaños("PU").ToString.ToDecimal > 0 Then - AgregarProductoServicio(drowPsTamaños("Cantidad").ToString.ToEntero, drowPsTamaños("CveUnidadMedida").ToString.ToEntero, drowPsTamaños("UnidadMedida").ToString, - drowPsTamaños("CveClacificacion").ToString.ToEntero, drowPsTamaños("Clacificacion").ToString, drowPsTamaños("CvePS").ToString.ToEntero, - drowPsTamaños("PS").ToString, "", drowPsTamaños("PU").ToString.ToDecimal, 0, -1, "", drowPsTamaños("CveSubProyecto").ToString.ToEntero, - drowPsTamaños("SubProyecto").ToString) - End If - Next - - ObjProductosServicios.Dispose() - 'End If - - ' ObjAcum.Dispose() - 'End If - - End Sub Private Function GuardarUsados(SqlTransaccion As SqlClient.SqlTransaction, CveVenta As Integer) As Boolean