diff --git a/App_Code/ClsInventarios.vb b/App_Code/ClsInventarios.vb
index 4e2ca49e7..f05686a6c 100644
--- a/App_Code/ClsInventarios.vb
+++ b/App_Code/ClsInventarios.vb
@@ -630,7 +630,7 @@ Public Class ClsInventarios
SqlAdapter.Fill(Data)
Retorno = True
Catch Ex1 As SqlException
- If Ex1.Message.Contains("Número: 2627;") Then
+ If Ex1.Message.Contains("Número: 2601;") Then
Alert("Ya existe una Sección de Almacén con el mismo nombre: " & Seccion & ".", TipoMensaje.MsgAdvertencia)
Else
Me.OnError("Ocurrió un error al Guardar la Sección de Almacén.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb
index 07f8fecbf..9fdf3e692 100644
--- a/App_Code/Modelos.vb
+++ b/App_Code/Modelos.vb
@@ -4571,7 +4571,7 @@ Namespace Modelos
Next
- 'SI EXISTEN HAY EXISTENCIA EN (ENTREGA POR ADELANTADO) SE TIENE QUE REGRESAR AL ALMACEN GENERAL
+ 'SI EXISTEN HAY EXISTENCIA EN (ENTREGA POR ADELANTADO) SE TIENE QUE REGRESAR AL ALMACEN ORGINAL (GENERAL,SIN COSTO)
If Not ErrorCancelar AndAlso ListaRemisionesCancelar IsNot Nothing AndAlso ListaRemisionesCancelar.Count > 0 Then
'VERIFICA LOS MOVIMIENTOS DE DEVOLUCION YA GENERADOS QUE TENGAN EXISTENCIA EN (ENTREGA POR ADELANTADO)
@@ -4584,21 +4584,24 @@ Namespace Modelos
End If
End If
- 'DEBE REGRESAR LA EXISTENCIA DE (ENTREGA POR ADELANTADO) AL ALMACEN GENERAL
+ 'DEBE REGRESAR LA EXISTENCIA DE (ENTREGA POR ADELANTADO) AL ALMACEN ORGINAL (GENERAL,SIN COSTO)
If Not ErrorCancelar AndAlso DtDevoluciones IsNot Nothing Then
For Each CveRemision As Integer In ListaRemisionesCancelar
Dim DtDevRemision As DataTable = DtDevoluciones.FiltraParametros($"CveRemision={CveRemision}")
- Dim RowDevolucion As DataRow = DtDevRemision.FiltraParametros("", DistinctColumns:={"CveRemision", "CveAlmacen", "CveAlmacenDestino"}).Rows(0)
+ Dim DtDevMovs = DtDevRemision.FiltraParametros("", DistinctColumns:={"CveMovimiento", "CveRemision", "CveAlmacen", "CveAlmacenDestino"})
- CveAlmacen = RowDevolucion("CveAlmacen").ToString().ToEntero()
- CveAlmacenDevolucion = RowDevolucion("CveAlmacenDestino").ToString().ToEntero()
+ For Each RowDevolucion As DataRow In DtDevMovs.Rows
+ CveAlmacen = RowDevolucion("CveAlmacen").ToString().ToEntero()
+ CveAlmacenDevolucion = RowDevolucion("CveAlmacenDestino").ToString().ToEntero()
+
+ If Not CancelarMovimientosRemision(CveRemision, CveAlmacen, CveAlmacenDevolucion, DtDevRemision.FiltraParametros($"CveMovimiento={RowDevolucion("CveMovimiento")}"), ObjVentas, ObjInventario) Then
+ ErrorCancelar = True
+ MensajeError = "Ocurrió un error al cancelar los movimientos de la remisión."
+ Exit For
+ End If
+ Next
- If Not CancelarMovimientosRemision(CveRemision, CveAlmacen, CveAlmacenDevolucion, DtDevRemision, ObjVentas, ObjInventario) Then
- ErrorCancelar = True
- MensajeError = "Ocurrió un error al cancelar los movimientos de la remisión."
- Exit For
- End If
Next
Else
ErrorCancelar = True
@@ -5028,7 +5031,7 @@ Namespace Modelos
'SALIDA DE (ENTREGA POR ADELANTADO)
If Not ErrorCancelar Then
- For Each DrRem As DataRow In DtMovDetalle.FiltraParametros($"CveRemision = {CveRemision}").Rows
+ For Each DrRem As DataRow In DtMovDetalle.Rows
Dim CveVentaDetalleRem = DrRem("CveVentaDetalleRemision").ToString.ToEntero
Dim CantidadRem = DrRem("Cantidad").ToString.ToDecimal
@@ -5037,7 +5040,7 @@ Namespace Modelos
Exit For
End If
- If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalidaDevRem, DrRem("Cantidad").ToString.ToDecimal, DrRem("CveUM").ToString.ToEntero, DrRem("CvePS").ToString.ToEntero, DrRem("PU").ToString.ToDecimal, CveAF:=DrRem("CveActivoFijo").ToString.ToEntero, Serie:=DrRem("Serie").ToString, CveVentaDetalle:=CveVentaDetalleRem, Lote:=DrRem("Lote").ToString) Then
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalidaDevRem, DrRem("Cantidad").ToString.ToDecimal, DrRem("CveUM").ToString.ToEntero, DrRem("CvePS").ToString.ToEntero, DrRem("PU").ToString.ToDecimal, CveAF:=DrRem("CveActivoFijo").ToString.ToEntero, Serie:=DrRem("Serie").ToString, Lote:=DrRem("Lote").ToString, CveVentaDetalle:=CveVentaDetalleRem, CveMovimientoDetalleEntrada:=DrRem("CveMovimientoDetalle").ToString().ToEntero()) Then
ErrorCancelar = True
Exit For
End If
diff --git a/App_Code/modExtensiones.vb b/App_Code/modExtensiones.vb
index 0c2141fd0..ad51f25bc 100644
--- a/App_Code/modExtensiones.vb
+++ b/App_Code/modExtensiones.vb
@@ -1178,6 +1178,7 @@ Namespace Extensiones
Else
TmpDr = dt.Rows(0)
End If
+ dt.Dispose()
End If
Return TmpDr
@@ -1190,6 +1191,7 @@ Namespace Extensiones
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
dt.PrimaryKey = New DataColumn() {dt.Columns(PrimaryKey)}
TmpDr = dt.Rows.Find(Valor)
+ dt.Dispose()
End If
Return TmpDr
@@ -1250,6 +1252,7 @@ Namespace Extensiones
Else
Retorno = dt.Rows(0)(Columna).ToString
End If
+ dt.Dispose()
End If
Return Retorno
diff --git a/Bancos/ConciliacionesBancarias.aspx.vb b/Bancos/ConciliacionesBancarias.aspx.vb
index 9175d0e91..c8957ee63 100644
--- a/Bancos/ConciliacionesBancarias.aspx.vb
+++ b/Bancos/ConciliacionesBancarias.aspx.vb
@@ -236,9 +236,19 @@ Partial Class Bancos_ConciliacionesBancariasaspx
Seleccionados += 1
Fecha = Gvr.DataKey("FechaDocumento").ToDate
If Gvr.DataKey("Tipo") = "Cargo" Then
- SumaSIGCargo += Gvr.DataKey("Importe").ToDouble
+ If Gvr.DataKey("Importe").ToDouble < 0 Then ' cuando es negativo suma para el abono
+ SumaSIGAbono += Math.Abs(Gvr.DataKey("Importe").ToDouble)
+ Else
+ SumaSIGCargo += Gvr.DataKey("Importe").ToDouble
+ End If
+
ElseIf Gvr.DataKey("Tipo") = "Abono" Then
- SumaSIGAbono += Gvr.DataKey("Importe").ToDouble
+ If Gvr.DataKey("Importe").ToDouble < 0 Then ' cuando es negativo suma para el cargo
+ SumaSIGCargo += Math.Abs(Gvr.DataKey("Importe").ToDouble)
+ Else
+ SumaSIGAbono += Gvr.DataKey("Importe").ToDouble
+ End If
+
End If
End If
Next
diff --git a/Bancos/PopIEVentas.aspx.vb b/Bancos/PopIEVentas.aspx.vb
index 17a1b63e6..ef708b810 100644
--- a/Bancos/PopIEVentas.aspx.vb
+++ b/Bancos/PopIEVentas.aspx.vb
@@ -2097,15 +2097,15 @@ Partial Class Bancos_PopIEVentas
If CveMonedaVenta = 1 And CveMoneda = 2 Then
'factura pesos, pago en dolares
- tImporteVenta = ((MovimientoPagar.Total * PorcentajePago) * tipoCambioVenta).RoundSQL
+ tImporteVenta = ((MovimientoPagar.Total * PorcentajePago) * tipoCambioVentaValuacion).RoundSQL
tImportePago = ((MovimientoPagar.Total * PorcentajePago) * tipoCambioVenta / tipoCambioPago).RoundSQL
ElseIf CveMonedaVenta = 2 And CveMoneda = 2 Then
'factura dolares, pago en dolares
- tImporteVenta = ((MovimientoPagar.Total * PorcentajePago) * tipoCambioVenta).RoundSQL
+ tImporteVenta = ((MovimientoPagar.Total * PorcentajePago) * tipoCambioVentaValuacion).RoundSQL
tImportePago = ((MovimientoPagar.Total * PorcentajePago) * tipoCambioPago).RoundSQL
ElseIf CveMonedaVenta = 2 And CveMoneda = 1 Then
'factura dolares, pago en pesos
- tImporteVenta = ((MovimientoPagar.Total * PorcentajePago) * tipoCambioVenta).RoundSQL
+ tImporteVenta = ((MovimientoPagar.Total * PorcentajePago) * tipoCambioVentaValuacion).RoundSQL
tImportePago = ((MovimientoPagar.Total * PorcentajePago) * tipoCambioPago).RoundSQL
End If
diff --git a/Bancos/ProveedoresAbonar.aspx.vb b/Bancos/ProveedoresAbonar.aspx.vb
index 472424e5f..c7c0a5615 100644
--- a/Bancos/ProveedoresAbonar.aspx.vb
+++ b/Bancos/ProveedoresAbonar.aspx.vb
@@ -2292,7 +2292,7 @@ Partial Class Bancos_ProveedoresAbonar
'If Archivo.Exists Then
Msg.AppendFormat("
", IDPoliza)
Dim Mensaje As String = String.Format(" El Documento se generó correctamente.
Descargas:
{0}
", Msg.ToString)
diff --git a/Bancos/RepProgramarRecursos.aspx.vb b/Bancos/RepProgramarRecursos.aspx.vb
index 5c2cd3230..7fceb03ec 100644
--- a/Bancos/RepProgramarRecursos.aspx.vb
+++ b/Bancos/RepProgramarRecursos.aspx.vb
@@ -222,8 +222,8 @@ Partial Class Bancos_RepProgramarRecursos
CargaCreditosVencimiento()
- 'Esconde PROYECTO EMP 13,14
- If UsuarioActual.CveEmpresa = 13 Or UsuarioActual.CveEmpresa = 14 Then
+ 'Esconde PROYECTO EMP 13,14,83
+ If UsuarioActual.CveEmpresa.Contiene(13,14,83) Then
Gv.Columns(3).Visible = False
Gv.Columns(4).Visible = True
ElseIf UsuarioActual.CveEmpresa <> 119 Then
diff --git a/Bancos/Reportes.aspx b/Bancos/Reportes.aspx
deleted file mode 100644
index a998eb3df..000000000
--- a/Bancos/Reportes.aspx
+++ /dev/null
@@ -1,23 +0,0 @@
-<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="Reportes.aspx.vb" Inherits="Bancos_Reportes" %>
-
-<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Bancos/Reportes.aspx.vb b/Bancos/Reportes.aspx.vb
deleted file mode 100644
index b96bf50c4..000000000
--- a/Bancos/Reportes.aspx.vb
+++ /dev/null
@@ -1,217 +0,0 @@
-Option Strict On
-Option Explicit On
-
-Imports System.Data
-Imports Extensiones
-Imports Microsoft.Reporting.WebForms
-
-Partial Class Bancos_Reportes
- Inherits ClsPaginas
-
- Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
- 'CType(Me.Master, BaseMasterPage).EsPopup = True
- If Not Page.IsPostBack Then
- If Request("Opcion") IsNot Nothing Then
- Select Case Request("Opcion")
- Case "ImprimeMov"
- If Request("CveIE") IsNot Nothing AndAlso Request("CveIE").ToString.ToEntero > 0 Then
- ImprimeMov(Request("CveIE").ToEntero)
- End If
- End Select
- End If
- End If
- End Sub
-
- Private Sub ImprimeMov(CveIE As Integer)
- Dim ObjIE As New ClsBancos()
- Dim DtGvRH As New DataTable
- Dim DtComprobacion As New DataTable
- Dim ParamComprobacion As New DataTable
-
- 'Movimientos Relacionados de Comprobacion - Hijo
- If ObjIE.GetBancosIEMovimientosHijo(CveIE, UsuarioActual.CveEmpresa) Then
- DtGvRH = ObjIE.DtResultados
- End If
-
- If DtGvRH IsNot Nothing AndAlso DtGvRH.Rows.Count > 0 Then
-
- If ObjIE.GetBancosIE(CveIE, UsuarioActual.CveEmpresa) Then
- ParamComprobacion = ObjIE.DtResultados
- End If
-
- Dim ObjMov As New ClsMovimientos
- For Each dr As DataRow In DtGvRH.Rows
- If ObjMov.GetPersonalCajaChica(UsuarioActual.CveEmpresa, dr("CveCompra").ToString.ToEntero) Then
- DtComprobacion.Merge(ObjMov.DtResultados.FiltraParametros("CveCompra =" + dr("CveCompra").ToString))
- End If
- Next
- ObjMov.Dispose()
-
- Dim Archivo As New System.IO.FileInfo(String.Format("{0}Formatos\Reembolso.rdlc", UsuarioActual.Empresa.Ruta))
- Dim Imagen As New System.IO.FileInfo(String.Format("{0}Logo.png", UsuarioActual.Empresa.Ruta))
- Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
-
- Dim params As New List(Of ReportParameter)
-
- If Archivo.Exists Then
-
- If UsuarioActual.CveEmpresa = 72 Then
- params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
- params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
- params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToString))
- params.Add(New ReportParameter("CveCajaChica", DtComprobacion.Rows(0)("CveCajaChica").ToString))
- params.Add(New ReportParameter("CveFyE", "0")) '
-
- params.Add(New ReportParameter("cuentaRetiro", "Cuenta retiro: " & ParamComprobacion.Rows(0)("BancoNumCuentaMoneda").ToString))
- params.Add(New ReportParameter("CajaChica", "Caja chica: " & ParamComprobacion.Rows(0)("BancoNumCuentaMoneda").ToString))
- params.Add(New ReportParameter("observaciones", "Observaciones: " & ParamComprobacion.Rows(0)("Observaciones").ToString))
- params.Add(New ReportParameter("folio", ParamComprobacion.Rows(0)("Folio").ToString))
- params.Add(New ReportParameter("fecha", ParamComprobacion.Rows(0)("FechaDocumento").ToString))
- params.Add(New ReportParameter("importe", ParamComprobacion.Rows(0)("Importe").ToString))
- params.Add(New ReportParameter("TotAbono", DtComprobacion.SUM("Abonado").ToString))
-
- ImprimirPDF(String.Format("{0}Formatos\Reembolso.rdlc", UsuarioActual.Empresa.Ruta), DtComprobacion, params, String.Format("IE{0}", CveIE), Formato:="PDF")
- Else
- params.Add(New ReportParameter("Numero", "")) '
- params.Add(New ReportParameter("Anio", DtComprobacion.FiltraParametros("CveCompra > 0").MAX("Fecha").ToDate.Year.ToString))
- params.Add(New ReportParameter("Nombre", DtComprobacion.MAX("SubProyecto")))
- params.Add(New ReportParameter("Fecha", Now.Date.ToString))
- params.Add(New ReportParameter("Elaboro", ""))
- params.Add(New ReportParameter("Autorizo", ""))
- params.Add(New ReportParameter("ElaboroPuesto", ""))
- params.Add(New ReportParameter("AutorizoPuesto", ""))
- ImprimirPDF(String.Format("{0}Formatos\Reembolso.rdlc", UsuarioActual.Empresa.Ruta), DtComprobacion.FiltraParametros("CveCompra > 0"), params, String.Format("IE{0}", CveIE), RDSName:="DsCompras")
- End If
- Else
- params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
- params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
- params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToString))
-
- params.Add(New ReportParameter("cuentaRetiro", "Cuenta retiro: " & ParamComprobacion.Rows(0)("BancoNumCuentaMoneda").ToString))
- params.Add(New ReportParameter("CajaChica", "Caja chica: " & ParamComprobacion.Rows(0)("BancoNumCuentaMoneda").ToString))
- params.Add(New ReportParameter("observaciones", "Observaciones: " & ParamComprobacion.Rows(0)("Observaciones").ToString))
- params.Add(New ReportParameter("folio", ParamComprobacion.Rows(0)("Folio").ToString))
- params.Add(New ReportParameter("fecha", ParamComprobacion.Rows(0)("FechaDocumento").ToString))
- params.Add(New ReportParameter("importe", ParamComprobacion.Rows(0)("Importe").ToString))
- params.Add(New ReportParameter("TotAbono", DtComprobacion.SUM("Abonado").ToString))
-
- If Imagen.Exists Then
- params.Add(New ReportParameter("LogoPath", logouri))
- Else
- params.Add(New ReportParameter("LogoPath", ""))
- End If
-
- ImprimirPDF("Empresas/Grales/Formatos/RepRembolsosComprobaciones.rdlc", DtComprobacion, params, String.Format("IE{0}", CveIE), Formato:="PDF")
- End If
- Else
- If ObjIE.GetBancosIE(CveIE, UsuarioActual.CveEmpresa) Then
- If ObjIE.DtResultados.Rows.Count > 0 Then
-
- Dim dtMovs As DataTable
- 'obtengo los movimientos pagados
-
- Dim Mov As New ClsContabilidad
-
- If Mov.GetPrePolizasDetalle(-1, CveIE) Then
-
- dtMovs = Mov.DtResultados.FiltraParametros("CveConceptoContable IN (17,2,312)")
-
- If Not UsuarioActual.CveEmpresa.Contiene(13, 83) Then
- 'CONVIERTO A PESOS CUANDO SE PAGA CON PESOS FACTURAS DE DOLARES
- For Each Dr As DataRow In dtMovs.Rows
- Dr("Importe") = Dr("ImporteMN").ToString.ToDecimal
- Dr("ImporteNC") = Dr("ImporteNC").ToString.ToDecimal * Dr("TC").ToString.ToDecimal
- Dr("Total") = Dr("Total").ToString.ToDecimal * Dr("TC").ToString.ToDecimal
- Dr("Saldo") = Dr("Saldo").ToString.ToDecimal * Dr("TC").ToString.ToDecimal
- Next
- End If
-
- 'TblBancos.ExportToPDF("Listado")
- Dim dtnc As New DataTable
- Dim ObjCompra As New ClsCompras()
- If ObjCompra.GetComprasNotasCredito(-1, -1, CveIE) Then
- dtnc = ObjCompra.DtResultados
- End If
- ObjCompra.Dispose()
-
- 'cargo el reporte con los datos
-
- Dim rds2 = New ReportDataSource("DataSet2", dtnc)
- Dim rds = New ReportDataSource("DataSet1", dtMovs)
- rv.LocalReport.DataSources.Clear()
- rv.LocalReport.DataSources.Add(rds)
- rv.LocalReport.DataSources.Add(rds2)
- rv.LocalReport.ReportPath = ModExtensiones.DirectorioBaseEmpresas & "Empresas\Grales\Formatos\rptChequeMovimientos.rdlc"
- rv.LocalReport.Refresh()
-
- Dim paramList As New List(Of ReportParameter)
- With paramList
- 'Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
- 'Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
-
- Dim LogoRutaFisica As String = String.Format("Empresas\{0}\Logo.png", UsuarioActual.CveEmpresa)
- Dim logouri = String.Format("{0}://{1}:{2}/ashx/sigfiles.ashx?P={3}", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, Encripta(LogoRutaFisica))
- Dim Imagen As New System.IO.FileInfo(String.Format("{0}Logo.png", UsuarioActual.Empresa.Ruta))
- .Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
- .Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString))
- .Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
- .Add(New ReportParameter("Cuenta", ObjIE.NumCuenta, True))
- .Add(New ReportParameter("Fecha", ObjIE.FechaDocumento.ToString("dd/MM/yyyy"), True))
- .Add(New ReportParameter("Paguese", ObjIE.PagueseA.Trim, True))
- .Add(New ReportParameter("Importe", ObjIE.Importe.ToString, True))
- .Add(New ReportParameter("Observaciones", ObjIE.Observaciones, True))
- .Add(New ReportParameter("Folio", ObjIE.Folio, True))
- .Add(New ReportParameter("MonedaAbreviatura", ObjIE.MonedaAbreviatura, True))
-
-
- If Imagen.Exists Then
- .Add(New ReportParameter("LogoPath", logouri))
- Else
- .Add(New ReportParameter("LogoPath", ""))
- End If
-
- End With
-
- rv.LocalReport.SetParameters(paramList)
- rv.LocalReport.Refresh()
-
-
- End If
-
- Mov.Dispose()
- GeneraPDF(String.Format("IE{0}", CveIE))
-
- End If
-
- End If
- End If
-
- ObjIE.Dispose()
- End Sub
- Public Sub GeneraPDF(Optional Nombre As String = "Reporte")
-
- Dim warnings As Warning() = Nothing
- Dim streamids As String() = Nothing
- Dim mimeType As String = Nothing
- Dim encoding As String = Nothing
- Dim extension As String = Nothing
- Dim fileName As String = Nombre
- Dim bytes As Byte()
- Try
- bytes = Me.rv.LocalReport.Render("PDF", Nothing, mimeType, encoding, extension, streamids, warnings)
-
- Response.Buffer = True
- Response.Clear()
- Response.ContentType = mimeType
- Response.AddHeader("content-disposition", String.Format("attachment; filename={0}.{1}", fileName, extension))
- Response.BinaryWrite(bytes) ' create the file
- Response.Flush() ' send it to the client to download
- Response.End()
- Catch ex As Exception
-
- End Try
-
- End Sub
-
-
-End Class
diff --git a/Bin/GoCfdi.dll b/Bin/GoCfdi.dll
index 6fabb13d8..11a4ee92f 100644
Binary files a/Bin/GoCfdi.dll and b/Bin/GoCfdi.dll differ
diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb
index 9d0ee04ad..3eb5a8958 100644
--- a/Compras/Compras.aspx.vb
+++ b/Compras/Compras.aspx.vb
@@ -1754,6 +1754,8 @@ Partial Class Compras_Compras
Validada = True
End If
'Valida.Dispose()
+ Else
+ Alert("Los servicios de validacion de facturas del SAT, no están activados.", TipoMensaje.ToastError, "", 0)
End If
UpPSS.Update()
@@ -10703,6 +10705,7 @@ Partial Class Compras_Compras
'VALIDA UNIDAD DE MEDIDA
If e.Row.DBCampo("CvePS").ToString.ToEntero > 0 Then
+ Dim DtEquivalencias As DataTable = GlobalDTProductosServiciosEquivalencias(e.Row.DBCampo("CvePS").ToString.ToEntero, e.Row.DBCampo("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa)
'SI UM NO ESTA REGISTRADA
If e.Row.DBCampo("CveUM").ToString.ToEntero <= 0 Then
@@ -10714,7 +10717,6 @@ Partial Class Compras_Compras
'EQUIVALENCIA
If e.Row.DBCampo("CveUM").ToString.ToEntero > 0 And e.Row.DBCampo("CveTipoPS").ToString.ToEntero = 2 Then
- Dim DtEquivalencias As DataTable = GlobalDTProductosServiciosEquivalencias(e.Row.DBCampo("CvePS").ToString.ToEntero, e.Row.DBCampo("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa)
If DtEquivalencias.FiltraParametros($"CveUM = {e.Row.DBCampo("CveUM").ToString.ToEntero}").Rows.Count > 0 Then
If Not DtEquivalencias.FiltraParametros($"CveUM = {e.Row.DBCampo("CveUM").ToString.ToEntero} AND UnidadBase = 1").Rows.Count > 0 Then
@@ -17607,13 +17609,15 @@ Partial Class Compras_Compras
If Version = "3.3" And CveSATPS > 0 Then
Dim DrPSSAT As DataRow = Nothing
If CargaXml Then
- If GlobalDTPSATPS().FiltraParametros(String.Format("SATClavePS={0}", CveSATPS)).Rows.Count > 0 Then
- DrPSSAT = GlobalDTPSATPS().FiltraParametros(String.Format("SATClavePS={0}", CveSATPS)).Rows(0)
- End If
+ DrPSSAT = GlobalDTPSATPS().FiltroPrimero(String.Format("SATClavePS={0}", CveSATPS))
+ 'If GlobalDTPSATPS().FiltraParametros(String.Format("SATClavePS={0}", CveSATPS)).Rows.Count > 0 Then
+ ' DrPSSAT = GlobalDTPSATPS().FiltraParametros(String.Format("SATClavePS={0}", CveSATPS)).Rows(0)
+ 'End If
Else
- If GlobalDTPSATPS().FiltraParametros(String.Format("CveSATPS={0}", CveSATPS)).Rows.Count > 0 Then
- DrPSSAT = GlobalDTPSATPS().FiltraParametros(String.Format("CveSATPS={0}", CveSATPS)).Rows(0)
- End If
+ DrPSSAT = GlobalDTPSATPS().FiltroPrimero(String.Format("SATClavePS={0}", CveSATPS))
+ 'If GlobalDTPSATPS().FiltraParametros(String.Format("CveSATPS={0}", CveSATPS)).Rows.Count > 0 Then
+ ' DrPSSAT = GlobalDTPSATPS().FiltraParametros(String.Format("CveSATPS={0}", CveSATPS)).Rows(0)
+ 'End If
End If
If DrPSSAT IsNot Nothing Then
Row("SATClaveProductoServicio") = DrPSSAT("SATClaveProductoServicio").ToString
diff --git a/Compras/ReembolsosComprobaciones.aspx.vb b/Compras/ReembolsosComprobaciones.aspx.vb
index 87e301517..001743e8f 100644
--- a/Compras/ReembolsosComprobaciones.aspx.vb
+++ b/Compras/ReembolsosComprobaciones.aspx.vb
@@ -1432,11 +1432,11 @@ Partial Class Compras_ReembolsosComprobaciones
Dim Mensaje As New StringBuilder
If CvePrePolizaExcedente > 0 Then
- Mensaje.AppendFormat("Abono Registrado Correctamente.
-
+
diff --git a/Inventarios/EntradasSalidas.aspx.vb b/Inventarios/EntradasSalidas.aspx.vb
index 977f91881..772c5fdc2 100644
--- a/Inventarios/EntradasSalidas.aspx.vb
+++ b/Inventarios/EntradasSalidas.aspx.vb
@@ -270,6 +270,7 @@ Partial Class Inventarios_EntradasSalidas
End Set
End Property
+
#End Region
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
@@ -343,6 +344,7 @@ Partial Class Inventarios_EntradasSalidas
If CveMovimiento > 0 Then
PermisoVerImportes()
End If
+
End If
End Sub
@@ -466,6 +468,12 @@ Partial Class Inventarios_EntradasSalidas
DdlSeccionAlmacen.DataSource = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa, -1)
DdlSeccionAlmacen.DataBind()
+ DdlSeccionAlmacenEntrada.DataSource = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa, -1)
+ DdlSeccionAlmacenEntrada.DataBind()
+
+ DdlSeccionAlmacenSalida.DataSource = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa, -1)
+ DdlSeccionAlmacenSalida.DataBind()
+
'Llenar el dropdownlist de monedas
DdlMoneda.DataSource = GlobalDTMonedas
DdlMoneda.DataBind()
@@ -1154,13 +1162,17 @@ Partial Class Inventarios_EntradasSalidas
Exit Sub
End If
- AddNew(DdlProducto2.SelectedValue.ToEntero, DdlProducto2.SelectedText, DdlUnidad.SelectedValue.ToEntero, DdlUnidad.SelectedItem.Text, txtCantidad.Text.ToDouble, txtPrecio.Text.ToDouble, TxtnSerie.Text.Replace(" ", String.Empty), LblCodigo.Text, HdnCodigoAF.Value, HdnCveActivoFijo.Value, TxtObservacionesdetalle.Text, TxtnLote.Text.Trim, MinFecha, DdlSeccionAlmacen.SelectedValue.ToEntero, DdlSeccionAlmacen.SelectedItem.Text)
+ AddNew(DdlProducto2.SelectedValue.ToEntero, DdlProducto2.SelectedText, DdlUnidad.SelectedValue.ToEntero, DdlUnidad.SelectedItem.Text, txtCantidad.Text.ToDouble,
+ txtPrecio.Text.ToDouble, TxtnSerie.Text.Replace(" ", String.Empty), LblCodigo.Text, HdnCodigoAF.Value, HdnCveActivoFijo.Value, TxtObservacionesdetalle.Text,
+ TxtnLote.Text.Trim, TxtnFechaCaducidad.Text.ToDate, DdlSeccionAlmacen.SelectedValue.ToEntero, DdlSeccionAlmacen.SelectedItem.Text)
LimpiarAgregar()
txtCantidad.Text = ""
TxtnLote.Text = ""
LblCodigo.Text = ""
TxtnSerie.Text = ""
+ TxtnLote.Text = ""
+ TxtnFechaCaducidad.Text = ""
HdnCodigoAF.Value = "-1"
HdnCveActivoFijo.Value = "-1"
RegistraScript("CodigoAF = "";")
@@ -2150,25 +2162,23 @@ Partial Class Inventarios_EntradasSalidas
If dr IsNot Nothing Then
If CBool(dr("AplicaSerie")) Then
- 'LblSerieLote.Visible = True
TxtnSerie.Visible = True
divSerie.Visible = True
- 'TrSerieLote.Visible = True
- 'TrSerieLote2.Visible = True
-
End If
If CBool(dr("AplicaLote")) Then
TxtnLote.Visible = True
divLote.Visible = True
- 'TrLote.Visible = True
- 'TrLote2.Visible = True
End If
If CBool(dr("AplicaSeccion")) Then
divSeccionAlmacen.Visible = True
End If
+ If CBool(dr("AplicaCaducidad")) Then
+ divCaducidad.Visible = True
+
+ End If
End If
End If
@@ -2371,6 +2381,8 @@ Partial Class Inventarios_EntradasSalidas
CveAFEdit = GvRow.DataKey("CveAF").ToEntero
txtPrecio.Text = GvRow.DataKey("PU").ToDouble.FormatoNumero
TxtnSerie.Text = GvRow.DataKey("Serie")
+ TxtnLote.Text = GvRow.DataKey("Lote")
+ TxtnFechaCaducidad.Text = GvRow.DataKey("FechaCaducidad").ToDate.ToShortDateString
TxtObservacionesdetalle.Text = GvRow.DataKey("Observaciones")
DdlSeccionAlmacen.SelectedValueExist(GvRow.DataKey("CveSeccionAlmacen"))
LkAgregarDetalle.Text = "Actualizar"
@@ -2397,6 +2409,8 @@ Partial Class Inventarios_EntradasSalidas
CveAFEdit = GvRow.DataKey("CveAF").ToEntero
txtPrecio.Text = GvRow.DataKey("PU").ToDouble.FormatoNumero
TxtnSerie.Text = GvRow.DataKey("Serie")
+ TxtnLote.Text = GvRow.DataKey("Lote")
+ TxtnFechaCaducidad.Text = GvRow.DataKey("FechaCaducidad")
TxtObservacionesdetalle.Text = GvRow.DataKey("Observaciones")
DdlSeccionAlmacen.SelectedValueExist(GvRow.DataKey("CveSeccionAlmacen"))
Dim Origen As Integer = GlobalDTInvConceptos.FiltroPrimeroValor("Origen", String.Format("CveConcepto = {0}", DdlConcepto.SelectedValue)).ToEntero
@@ -3464,6 +3478,11 @@ Partial Class Inventarios_EntradasSalidas
Dim CodigoPS As String = ""
Dim PS As String = ""
+ Dim CveSeccionAlmacen As Integer = DdlSeccionAlmacenEntrada.SelectedValue.ToEntero
+ Dim Serie As String = If(TxtSerieEntrada.Text = "", "-1", TxtSerieEntrada.Text)
+ Dim Lote As String = If(TxtLoteEntrada.Text = "", "-1", TxtLoteEntrada.Text)
+ Dim Caducidad As String = If(TxtCaducidadEntrada.Text = "", "-1", TxtCaducidadEntrada.Text)
+
Dim dr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS).FiltroPrimero("", "PS")
If dr IsNot Nothing Then
CveClasificacion = dr("CveClasificacion").ToString.ToEntero
@@ -3482,6 +3501,10 @@ Partial Class Inventarios_EntradasSalidas
registro.Item("Total") = Cantidad * CostoPromedio
registro.Item("CveClasificacion") = CveClasificacion
registro.Item("Estatus") = ""
+ registro.Item("CveSeccionAlmacen") = CveSeccionAlmacen
+ registro.Item("Serie") = Serie
+ registro.Item("Lote") = Lote
+ registro.Item("FechaCaducidad") = Caducidad
DtMovimientosEntradaInvFisico.Rows.Add(registro)
CargaGvEntradas(DtMovimientosEntradaInvFisico)
@@ -3492,6 +3515,7 @@ Partial Class Inventarios_EntradasSalidas
Private Sub CargaGvEntradas(DtTemp As DataTable)
GvEntradas.DataSource = DtTemp
GvEntradas.DataBind()
+ UpEntradasGv.Update()
End Sub
Protected Sub DdlPSInvFisico_ValueChanged(sender As Object, e As EventArgs) Handles DdlPS.selectedindexchange
@@ -3560,6 +3584,11 @@ Partial Class Inventarios_EntradasSalidas
Dim CodigoPS As String = ""
Dim PS As String = ""
+ Dim CveSeccionAlmacen As Integer = DdlSeccionAlmacenSalida.SelectedValue.ToEntero
+ Dim Serie As String = If(TxtSerieSalida.Text = "", "-1", TxtSerieSalida.Text)
+ Dim Lote As String = If(TxtLoteSalida.Text = "", "-1", TxtLoteSalida.Text)
+ Dim Caducidad As String = If(TxtCaducidadSalida.Text = "", "-1", TxtCaducidadSalida.Text)
+
Dim dr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS).FiltroPrimero("", "PS")
If dr IsNot Nothing Then
CveClasificacion = dr("CveClasificacion").ToString.ToEntero
@@ -3578,6 +3607,10 @@ Partial Class Inventarios_EntradasSalidas
registro.Item("Total") = 0
registro.Item("CveClasificacion") = CveClasificacion
registro.Item("Estatus") = ""
+ registro.Item("CveSeccionAlmacen") = CveSeccionAlmacen
+ registro.Item("Serie") = Serie
+ registro.Item("Lote") = Lote
+ registro.Item("FechaCaducidad") = Caducidad
DtMovimientosSalidaInvFisico.Rows.Add(registro)
CargaGvSalidas(DtMovimientosSalidaInvFisico)
@@ -3588,6 +3621,7 @@ Partial Class Inventarios_EntradasSalidas
Private Sub CargaGvSalidas(DtTemp As DataTable)
GvSalidas.DataSource = DtTemp
GvSalidas.DataBind()
+ UpSalidaGv.Update()
End Sub
Protected Sub DeleteRowInvFisicoSalida(ByVal sender As Object, ByVal e As EventArgs)
@@ -3672,7 +3706,9 @@ Partial Class Inventarios_EntradasSalidas
'VALIDA EXISTENCIAS SALIDA E INSERTA DETALLES
For Each Dr As DataRow In DtMovimientosSalidaInvFisico.Rows
If ObjInventario.GetExistenciasPS(Dr("CvePS").ToString.ToEntero, Dr("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, DdlAlmacenInventarioFisico.SelectedValue.ToEntero) >= Dr("Cantidad").ToString.ToDouble Then
- If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, -1) Then
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero,
+ Dr("PU").ToString.ToDecimal, -1, CveSeccionAlmacen:=Dr("CveSeccionAlmacen").ToString.ToEntero, Serie:=Dr("Serie").ToString,
+ Lote:=Dr("Lote").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate) Then
Mensaje = "Ocurrió un error al guardar los movimientos de salida"
ErrorMovInv = True
Exit For
@@ -3688,7 +3724,9 @@ Partial Class Inventarios_EntradasSalidas
If Not ErrorMovInv Then
For Each Dr As DataRow In DtMovimientosEntradaInvFisico.Rows
ImporteConcepto = Dr("PU").ToString.ToDecimal
- If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, ImporteConcepto, -1) Then
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero,
+ ImporteConcepto, -1, CveSeccionAlmacen:=Dr("CveSeccionAlmacen").ToString.ToEntero, Serie:=Dr("Serie").ToString,
+ Lote:=Dr("Lote").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate) Then
Mensaje = "Ocurrió un error al guardar los movimientos de entrada"
ErrorMovInv = True
Exit For
@@ -3828,6 +3866,75 @@ Partial Class Inventarios_EntradasSalidas
#End Region
+#Region "Inventario Fisico"
+ Private Sub DdlPS_Change(sender As Object, e As EventArgs) Handles DdlPS.selectedindexchange
+ If DdlPS.SelectedValue.ToEntero > 0 Then
+ Dim drp As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlPS.SelectedValue.ToEntero).FiltroPrimero("")
+
+ If drp IsNot Nothing Then
+ Dim AplicaSerie As Boolean = CBool(drp("AplicaSerie"))
+ Dim AplicaSeccion As Boolean = CBool(drp("AplicaSeccion"))
+ Dim AplicaLote As Boolean = CBool(drp("AplicaLote"))
+ Dim AplicaCaducidad As Boolean = CBool(drp("AplicaCaducidad"))
+ 'activa Serie
+ ThSerieEntrada.Visible = AplicaSerie
+ TrSerieEntrada.Visible = AplicaSerie
+ TxtnSerie.Visible = AplicaSerie
+
+ 'activa seccion
+ ThSeccionEntrada.Visible = AplicaSeccion
+ TrSeccionEntrada.Visible = AplicaSeccion
+
+ 'activa lote
+ ThLoteEntrada.Visible = AplicaLote
+ TrLoteEntrada.Visible = AplicaLote
+
+ 'activa caducidad
+ ThCaducidadEntrada.Visible = AplicaCaducidad
+ TrCaducidadEntrada.Visible = AplicaCaducidad
+
+ Else
+ TxtnSerie.Visible = False
+ End If
+ UpEntradaFisico.Update()
+ End If
+ End Sub
+
+ Private Sub DdlPSSalida_Change(sender As Object, e As EventArgs) Handles DdlPSSalida.selectedindexchange
+ If DdlPSSalida.SelectedValue.ToEntero > 0 Then
+ Dim drp As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlPSSalida.SelectedValue.ToEntero).FiltroPrimero("")
+
+ If drp IsNot Nothing Then
+ Dim AplicaSerie As Boolean = CBool(drp("AplicaSerie"))
+ Dim AplicaSeccion As Boolean = CBool(drp("AplicaSeccion"))
+ Dim AplicaLote As Boolean = CBool(drp("AplicaLote"))
+ Dim AplicaCaducidad As Boolean = CBool(drp("AplicaCaducidad"))
+ 'activa Serie
+ ThSerieSalida.Visible = AplicaSerie
+ TrSerieSalida.Visible = AplicaSerie
+ TxtnSerie.Visible = AplicaSerie
+
+ 'activa seccion
+ ThSeccionSalida.Visible = AplicaSeccion
+ TrSeccionSalida.Visible = AplicaSeccion
+
+ 'activa lote
+ ThLoteSalida.Visible = AplicaLote
+ TrLoteSalida.Visible = AplicaLote
+
+ 'activa caducidad
+ ThCaducidadSalida.Visible = AplicaCaducidad
+ TrCaducidadSalida.Visible = AplicaCaducidad
+
+ Else
+ TxtnSerie.Visible = False
+ End If
+ UpSalidaFisico.Update()
+ End If
+ End Sub
+#End Region
+
+
Private Sub GuardarBitacora(CveVenta As Integer, RutaAdjunto As String, Obser As String)
Dim ObjEventos As New ClsOIEventos()
@@ -3916,7 +4023,7 @@ Partial Class Inventarios_EntradasSalidas
End If
dt.TableName = "Datos"
-
+ Dim DTSeccionesAlmacen As DataTable = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa, -1)
If Not ErrorArchivo Then
NumRow = 0
Dim RowNoEncontrados As String = ""
@@ -3928,12 +4035,21 @@ Partial Class Inventarios_EntradasSalidas
'Dim CodigoBarras As String = Row("Codigo Barras").ToString.Trim.ToUpper
Dim ProductoServicio As String = Row("Producto/Servicio").ToString.Trim.ToUpper
Dim PrecioUnitario As Decimal = Row("Precio Unitario").ToString.ToDecimal
+ Dim Serie As String = Row("Serie").ToString
+ Dim Lote As String = Row("Lote").ToString
+ Dim Caducidad As String = Row("Caducidad").ToString
+ Dim SeccionAlmacen As String = Row("SeccionAlmacen").ToString
Dim CvePS As Integer = 0
Dim CveUM As Integer = 0
NumRow = NumRow + 1
+ Dim CveSeccionAlmacen As Integer = -1
+ If SeccionAlmacen <> "" Then
+ CveSeccionAlmacen = DTSeccionesAlmacen.FiltroPrimeroValor("CveSeccion", String.Format("SeccionAlmacen = '{0}'", SeccionAlmacen)).ToEntero
+ End If
+
If Codigo <> "" Then
Dim StrArray() As String = GetPS("Codigo", Codigo).Split("|"c)
If StrArray.Length > 0 Then
@@ -3974,10 +4090,17 @@ Partial Class Inventarios_EntradasSalidas
txtPrecio.Text = PrecioUnitario.ToString
ElProductoChange()
-
+ TxtnSerie.Text = Serie
+ TxtnLote.Text = Lote
+ DdlSeccionAlmacen.SelectedValue = CveSeccionAlmacen.ToString
+ TxtnFechaCaducidad.Text = If(Caducidad = "", MinFecha.ToString, Caducidad)
AgregarPS()
txtPrecio.Text = ""
DdlUnidad.SelectedItem.Text = ""
+ TxtnSerie.Text = ""
+ TxtnLote.Text = ""
+ TxtnFechaCaducidad.Text = ""
+ DdlSeccionAlmacen.SelectedValue = "-1"
NumAgregados = NumAgregados + 1
End If
@@ -4017,7 +4140,8 @@ Partial Class Inventarios_EntradasSalidas
Private Function GetPS(Opt As String, Valor As String) As String
Dim StrReturn As String = String.Empty
Dim CvePS As Integer = 0
- CvePS = GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CvePS", Opt & " = '" & Valor & "'").ToString.ToEntero
+ Dim Condicion As String = String.Format("{0} = '{1}'", Opt, Valor)
+ CvePS = GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CvePS", Condicion).ToString.ToEntero
If CvePS > 0 Then
StrReturn = "True|" & CvePS.ToString
Else
@@ -4200,6 +4324,8 @@ Partial Class Inventarios_EntradasSalidas
ElProductoChange()
txtPrecio.Text = ""
TxtnSerie.Text = ""
+ TxtnLote.Text = ""
+ TxtnFechaCaducidad.Text = ""
TxtObservacionesdetalle.Text = ""
DdlSeccionAlmacen.SelectedValue = "-1"
LkAgregarDetalle.Text = "Agregar"
diff --git a/Inventarios/EntregaAlmacen.aspx b/Inventarios/EntregaAlmacen.aspx
index 0b3268214..f4078c025 100644
--- a/Inventarios/EntregaAlmacen.aspx
+++ b/Inventarios/EntregaAlmacen.aspx
@@ -463,7 +463,7 @@
-
+
@@ -835,10 +835,11 @@
<%-- --%>
-
-
+
+
-
+
+
<%-- --%>
diff --git a/Inventarios/EntregaAlmacen.aspx.vb b/Inventarios/EntregaAlmacen.aspx.vb
index d68c26807..6532d27a0 100644
--- a/Inventarios/EntregaAlmacen.aspx.vb
+++ b/Inventarios/EntregaAlmacen.aspx.vb
@@ -2,14 +2,14 @@
Option Explicit On
Imports System.Data
-Imports System.IO
+Imports System.IO
Imports Extensiones
Imports Microsoft.Reporting.WebForms
Partial Class Inventarios_EntregaAlmacen
- Inherits ClsPaginas
-
+ Inherits ClsPaginas
+
#Region "PROPIEDADES"
Private Property CveVentaAD As Integer
Get
@@ -243,10 +243,10 @@ Partial Class Inventarios_EntregaAlmacen
Set(value As Boolean)
ViewState("EsDevolucionDirecta") = value
End Set
- End Property
-
+ End Property
+
#End Region
-
+
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
@@ -254,9 +254,9 @@ Partial Class Inventarios_EntregaAlmacen
CargaParametrosAD()
If UsuarioActual.CveEmpresa.Contiene(72, 80) Then DdlAlmacen.AutoPostBack = True
End If
- End Sub
-
-
+ End Sub
+
+
#Region " INICIALIZA VALORES "
Private Sub InicializaValores()
TipoEstatus = -1
@@ -324,11 +324,11 @@ Partial Class Inventarios_EntregaAlmacen
LimpiaCampos()
- End Sub
-
+ End Sub
+
#End Region
-
-
+
+
#Region " CARGA PARAMETROS - EXCLUSIVO USO AD "
Private Sub CargaParametrosAD()
@@ -346,9 +346,9 @@ Partial Class Inventarios_EntregaAlmacen
BtnGuardar.Visible = False
End If
- End Sub
+ End Sub
#End Region
-
+
#Region " CARGA PENDIENTES POR SURTIR "
Protected Sub DdlCliente_SelectedIndexChanged(sender As Object, e As EventArgs)
CargaFolios()
@@ -466,11 +466,11 @@ Partial Class Inventarios_EntregaAlmacen
End Select
UpPendientes.Update()
End If
- End Sub
-
+ End Sub
+
#End Region
-
-
+
+
#Region " CARGA VENTA POR SURTIR "
Protected Sub BtnSurtir_Click(sender As Object, e As EventArgs)
@@ -509,7 +509,7 @@ Partial Class Inventarios_EntregaAlmacen
TipoEntrega = 1
BtnGuardar.Visible = True
- Dim StrAlmacenes As String = "CveTipoAlmacen IN (1,2)"
+ Dim StrAlmacenes As String = "CveTipoAlmacen IN (1,2,26)"
If UsuarioActual.CveSubProyecto = 8804 Then
StrAlmacenes = "CveTipoAlmacen IN (1,2,12)"
@@ -659,8 +659,8 @@ Partial Class Inventarios_EntregaAlmacen
Alert("Ocurrió un error al cargar los datos de devolución. Por favor vuelva a intentar.", TipoMensaje.MsgError)
End If
End If
- If UsuarioActual.Empresa.FacturaProduccion Then
- CargaDocumentos(CveVenta)
+ If UsuarioActual.Empresa.FacturaProduccion Then
+ CargaDocumentos(CveVenta)
End If
Else
Alert("No se encontraron productos pendientes por surtir. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
@@ -714,6 +714,9 @@ Partial Class Inventarios_EntregaAlmacen
CveAlmacenTraspasoDestino = DtDatos.Rows(0)("CveAlmacenDestino").ToString.ToEntero
CveAlmacenTraspasoOrigen = DtDatos.Rows(0)("CveAlmacenOrigen").ToString.ToEntero
+ CveSubProyecto = DtDatos.Rows(0)("CveSubProyecto").ToString.ToEntero
+ EsInterno = CBool(DtDatos.Rows(0)("EsInterno").ToString)
+ CveVentaSurtir = -1
If DtDatos.SUM("CantidadS") <= 0 Then
GvDatos.CssClass = "table table-striped table-hover Widthall ScrollAD gvInventario gvEscondeColumna"
@@ -750,6 +753,10 @@ Partial Class Inventarios_EntregaAlmacen
DtDatos.Columns.Add("CveSeccion", GetType(Integer))
End If
+ If Not DtDatos.Columns.Contains("Lote") Then
+ DtDatos.Columns.Add("Lote", GetType(String))
+ End If
+
If Not DtDatos.Columns.Contains("FechaCaducidad") Then
DtDatos.Columns.Add("FechaCaducidad", GetType(Date))
End If
@@ -916,14 +923,14 @@ Partial Class Inventarios_EntregaAlmacen
End If
objInv.Dispose()
GvDocs.DataBind()
- End Sub
-
-
+ End Sub
+
+
#End Region
-
-
+
+
#Region " AGREGAR "
-
+
Protected Sub BtnSerie_Click(sender As Object, e As EventArgs)
Dim Argumentos = CType(sender, Button).CommandArgument.Split("°"c)
@@ -950,10 +957,10 @@ Partial Class Inventarios_EntregaAlmacen
UpLoteBatch.Update()
End If
- End Sub
-
+ End Sub
+
#Region " AGREGA POR SERIE/LOTE "
-
+
Private Sub CreaDtDetalle()
If DtDatosDetalle Is Nothing Then
DtDatosDetalle = New DataTable
@@ -1158,11 +1165,11 @@ Partial Class Inventarios_EntregaAlmacen
DtDatosDetalle.AcceptChanges()
CargaSerie()
- End Sub
+ End Sub
#End Region
-
+
#Region " AGREGA CON LOTE BATCH "
-
+
Private Sub CreaDtDetalleLote()
If DtDatosDetalleLote Is Nothing Then
DtDatosDetalleLote = New DataTable
@@ -1350,9 +1357,9 @@ Partial Class Inventarios_EntregaAlmacen
End Try
DtDatosDetalleLote.AcceptChanges()
CargaLote()
- End Sub
+ End Sub
#End Region
-
+
#Region " AGREGA CON TXT | CODIGO - SERIE "
Protected Sub BtnCodigoPS_Click(sender As Object, e As EventArgs)
@@ -1486,12 +1493,12 @@ Partial Class Inventarios_EntregaAlmacen
End If
TxtCantidadEspecialDiv.Text = "1"
- End Sub
+ End Sub
#End Region
-
+
#End Region
-
-
+
+
#Region " GUARDAR "
Protected Sub BtnGuardar_Click(sender As Object, e As EventArgs)
@@ -1653,8 +1660,19 @@ Partial Class Inventarios_EntregaAlmacen
DtTraspasos.Columns.Add("FolioSalida", GetType(Integer))
DtTraspasos.Columns.Add("CveMovimientoEntrada", GetType(Integer))
DtTraspasos.Columns.Add("FolioEntrada", GetType(Integer))
+ DtTraspasos.Columns.Add("CveTipoAlmacen", GetType(Integer))
+ DtTraspasos.Columns.Add("CveConceptoMovimientoSalida", GetType(Integer))
- Dim CveMovimientoSalida = -1, FolioSalida = -1, CveMovimientoEntrada = -1, CveMovimientoEntradaApartado = -1, FolioEntrada = -1, CveMovimientoSalidaDevRem = -1, FolioMovimientoSalidaDevRem = -1, CveMovimientoEntradaDevRem = -1, FolioMovimientoEntradaDevRem = -1
+ Dim CveMovimientoSalida = -1, FolioSalida = -1, CveMovimientoEntrada = -1, CveMovimientoEntradaApartado = -1, FolioEntrada = -1, CveMovimientoSalidaDevRem = -1, FolioMovimientoSalidaDevRem = -1, CveMovimientoEntradaDevRem = -1, FolioMovimientoEntradaDevRem = -1
+
+
+ Dim DtDevSinCosto As New DataTable
+ DtDevSinCosto.Columns.Add("CveAlmacen", GetType(Integer))
+ DtDevSinCosto.Columns.Add("Almacen", GetType(String))
+ DtDevSinCosto.Columns.Add("CveMovimientoEntrada", GetType(Integer))
+ DtDevSinCosto.Columns.Add("FolioEntrada", GetType(Integer))
+ DtDevSinCosto.Columns.Add("CveTipoAlmacen", GetType(Integer))
+ DtDevSinCosto.Columns.Add("CveConceptoMovimientoSalida", GetType(Integer))
Try
'VALIDA EXISTENCIA 2
@@ -1710,13 +1728,240 @@ Partial Class Inventarios_EntregaAlmacen
'' TERMINA: VALIDACIONES
+ Dim CantidadPendienteSinCosto As Decimal = 0
+ Dim CantidadSaldoSinCosto As Decimal = 0
+
+ Dim CantidadSalidaSinCosto As Decimal = 0
+
+ '' COMIENZA: SIN COSTO
+ If TipoDocto.Contiene("Ing", "Rem") AndAlso UsuarioActual.Empresa.Funcionalidad(587) = "1" AndAlso TipoMovimiento = 1 Then
+
+ Dim CveConceptoSalidaSinCosto As Integer = If(TipoDocto.Contiene("Rem"), 8, 40)
+
+ For Each Dr As DataRow In DtDatos.Rows
+ If Dr("CantidadGV").ToString.ToDecimal > 0 Then
+ If CBool(Dr("AplicaSerie")) Then
+ DtDetalle = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", Dr("Consec")))
+ For Each Dr1 As DataRow In DtDetalle.Rows
+ If ObjInventario.GetExistenciasProducto(Dr1("CvePS").ToString.ToEntero, Dr1("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, -1, FechaMovto:=TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), Serie:=Dr1("Serie").ToString, CveTipoAlmacen:=26, CveSubProyecto:=CveSubProyecto, Caducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("FechaCaducidad").ToString.ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then
+ For Each Dr2 As DataRow In ObjInventario.DtResultados.FiltraParametros("CveAlmacen > 0 AND ExistenciaFinal > 0").Rows
+
+ 'BUSCA SI EXISTE YA UN TRASPASO DEL ALMACEN DE APARTADO
+ CveMovimientoSalida = DtTraspasos.FiltroPrimeroValor("CveMovimientoSalida", $"CveAlmacen = {Dr2("CveAlmacen")}").ToEntero
+
+ If Not CveMovimientoSalida > 0 Then
+
+
+
+ CveMovimientoSalida = ObjInventario.AddMovimiento(Dr2("CveAlmacen").ToString.ToEntero, CveConceptoSalidaSinCosto, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1,
+ Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveContrato:=CveContrato, Modulo:="RE/GSC1")
+ FolioSalida = ObjInventario.Folio
+
+ If Not CveMovimientoSalida > 0 Then
+ ErrorMovInv = True
+ TextoError.AppendFormat("Ocurrió un error al procesar los movimientos de traspaso de apartado. Por favor vuelva a intentar.")
+ Exit For
+ End If
+
+ Dim DrMovto = DtTraspasos.NewRow
+ DrMovto("Almacen") = Dr2("Almacen").ToString.ToEntero
+ DrMovto("CveAlmacen") = Dr2("CveAlmacen").ToString.ToEntero
+ DrMovto("CveMovimientoSalida") = CveMovimientoSalida
+ DrMovto("FolioSalida") = FolioSalida
+ DrMovto("CveTipoAlmacen") = 26
+ DrMovto("CveConceptoMovimientoSalida") = CveConceptoSalidaSinCosto
+ DtTraspasos.Rows.Add(DrMovto)
+ End If
+
+
+ CantidadPendienteSinCosto = 1
+
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, CantidadPendienteSinCosto, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, Serie:=Dr1("Serie").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("FechaCaducidad").ToString.ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then
+ ErrorMovInv = True
+ TextoError.AppendFormat("Ocurrió un Error al procesar los conceptos de traspaso de apartado. Por favor vuelva a intentar.")
+ Exit For
+ End If
+
+ DtDatosDetalle.Select($"Consec = {Dr1("Consec")}")(0)("FueTraspaso") = 1
+ DtDatosDetalle.Select($"Consec = {Dr1("Consec")}")(0)("CveVentaDetalle") = Dr("CveVentaDetalle")
+ Dr("CantidadTraspaso") = Dr("CantidadTraspaso").ToString.ToDecimal + CantidadPendienteSinCosto
+ Exit For
+ Next
+ End If
+ If ErrorMovInv Then Exit For
+ Next
+
+ ElseIf CBool(Dr("AplicaLote")) Then
+
+ DtDetalle = DtDatosDetalleLote.FiltraParametros(String.Format("ConsecId = {0}", Dr("Consec")))
+ For Each Dr1 As DataRow In DtDetalle.Rows
+ If ObjInventario.GetExistenciasProducto(Dr1("CvePS").ToString.ToEntero, Dr1("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, -1, FechaMovto:=TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), Lote:=Dr1("Lote").ToString, CveTipoAlmacen:=26, CveSubProyecto:=CveSubProyecto, Caducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("FechaCaducidad").ToString.ToDate, MinFecha), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then
+
+ CantidadSaldoSinCosto = Dr("CantidadGV").ToString.ToDecimal
+
+ For Each Dr2 As DataRow In ObjInventario.DtResultados.FiltraParametros("CveAlmacen > 0 AND ExistenciaFinal > 0").Rows
+
+ 'BUSCA SI EXISTE YA UN TRASPASO DEL ALMACEN DE APARTADO
+ CveMovimientoSalida = DtTraspasos.FiltroPrimeroValor("CveMovimientoSalida", $"CveAlmacen = {Dr2("CveAlmacen")}").ToEntero
+
+ If Not CveMovimientoSalida > 0 Then
+ CveMovimientoSalida = ObjInventario.AddMovimiento(Dr2("CveAlmacen").ToString.ToEntero, CveConceptoSalidaSinCosto, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, Observaciones:=TxtObservaciones.Text.Trim,
+ Guia:=TxtGuia.Text, CveContrato:=CveContrato, Modulo:="RE/GSC2")
+ FolioSalida = ObjInventario.Folio
+
+ If Not CveMovimientoSalida > 0 Then
+ ErrorMovInv = True
+ TextoError.AppendFormat("Ocurrió un error al procesar los movimientos de traspaso de apartado. Por favor vuelva a intentar.")
+ Exit For
+ End If
+
+ Dim DrMovto = DtTraspasos.NewRow
+ DrMovto("Almacen") = Dr2("Almacen").ToString.ToEntero
+ DrMovto("CveAlmacen") = Dr2("CveAlmacen").ToString.ToEntero
+ DrMovto("CveMovimientoSalida") = CveMovimientoSalida
+ DrMovto("FolioSalida") = FolioSalida
+ DrMovto("CveTipoAlmacen") = 26
+ DrMovto("CveConceptoMovimientoSalida") = CveConceptoSalidaSinCosto
+ DtTraspasos.Rows.Add(DrMovto)
+ End If
+
+ CantidadPendienteSinCosto = If(Dr1("Cantidad").ToString.ToDecimal > CantidadSaldoSinCosto, CantidadSaldoSinCosto, Dr1("Cantidad").ToString.ToDecimal)
+
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, CantidadPendienteSinCosto.ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, Lote:=Dr1("Lote").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("FechaCaducidad").ToString.ToDate, MinFecha), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then
+ ErrorMovInv = True
+ TextoError.AppendFormat("Ocurrió un error al procesar los conceptos de traspaso de apartado. Por favor vuelva a intentar.")
+ Exit For
+ End If
+
+ DtDatosDetalle.Select($"Consec = {Dr1("Consec")}")(0)("FueTraspaso") = 1
+ DtDatosDetalle.Select($"Consec = {Dr1("Consec")}")(0)("CveVentaDetalle") = Dr("CveVentaDetalle")
+
+ CantidadSaldoSinCosto -= CantidadPendienteSinCosto
+ Dr("CantidadTraspaso") = Dr("CantidadTraspaso").ToString.ToDecimal + CantidadPendienteSinCosto
+ If CantidadSaldoSinCosto <= 0 Then Exit For
+ Next
+ End If
+ Next
+
+ Else
+
+ If ObjInventario.GetExistenciasProducto(Dr("CvePS").ToString.ToEntero, Dr("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, -1, FechaMovto:=TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), CveTipoAlmacen:=26, CveSubProyecto:=CveSubProyecto, Caducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("FechaCaducidad").ToString.ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then
+
+ CantidadSaldoSinCosto = Dr("CantidadGV").ToString.ToDecimal
+
+ For Each Dr1 As DataRow In ObjInventario.DtResultados.FiltraParametros("CveAlmacen > 0 AND ExistenciaFinal > 0").Rows
+
+ 'BUSCA SI EXISTE YA UN TRASPASO DEL ALMACEN DE APARTADO
+ CveMovimientoSalida = DtTraspasos.FiltroPrimeroValor("CveMovimientoSalida", $"CveAlmacen = {Dr1("CveAlmacen")}").ToEntero
+
+ If Not CveMovimientoSalida > 0 Then
+ CveMovimientoSalida = ObjInventario.AddMovimiento(Dr1("CveAlmacen").ToString.ToEntero, CveConceptoSalidaSinCosto, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1,
+ Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveContrato:=CveContrato, Modulo:="RE/GSC3")
+ FolioSalida = ObjInventario.Folio
+
+ If Not CveMovimientoSalida > 0 Then
+ ErrorMovInv = True
+ TextoError.AppendFormat("Ocurrió un error al procesar los movimientos de traspaso de apartado. Por favor vuelva a intentar.")
+ Exit For
+ End If
+
+ Dim DrMovto = DtTraspasos.NewRow
+ DrMovto("Almacen") = Dr1("Almacen").ToString.ToEntero
+ DrMovto("CveAlmacen") = Dr1("CveAlmacen").ToString.ToEntero
+ DrMovto("CveMovimientoSalida") = CveMovimientoSalida
+ DrMovto("FolioSalida") = FolioSalida
+ DrMovto("CveTipoAlmacen") = 26
+ DrMovto("CveConceptoMovimientoSalida") = CveConceptoSalidaSinCosto
+ DtTraspasos.Rows.Add(DrMovto)
+ End If
+
+
+ CantidadPendienteSinCosto = If(Dr1("ExistenciaFinal").ToString.ToDecimal > CantidadSaldoSinCosto, CantidadSaldoSinCosto, Dr1("ExistenciaFinal").ToString.ToDecimal)
+
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, CantidadPendienteSinCosto.ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0,
+ Serie:=Dr("Serie").ToString,
+ CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero,
+ FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("FechaCaducidad").ToString.ToDate, MinFecha),
+ Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"),
+ CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then
+ ErrorMovInv = True
+ TextoError.AppendFormat("Ocurrió un error al procesar los conceptos de traspaso de apartado. Por favor vuelva a intentar.")
+ Exit For
+ End If
+
+ CantidadSaldoSinCosto -= CantidadPendienteSinCosto
+ Dr("CantidadTraspaso") = Dr("CantidadTraspaso").ToString.ToDecimal + CantidadPendienteSinCosto
+ If CantidadSaldoSinCosto <= 0 Then Exit For
+ Next
+
+ If ErrorMovInv Then Exit For
+ Else
+ ErrorMovInv = True
+ End If
+
+ End If
+
+ CantidadSalidaSinCosto += Dr("CantidadTraspaso").ToString().ToDecimal()
+ If ErrorMovInv Then Exit For
+
+ End If
+
+ Next
+
+ 'ENTRADA POR TRASPASO A ENTREGA POR ADELANTADO
+ If TipoDocto = "Rem" AndAlso Not ErrorMovInv Then
+ For Each Dr1 As DataRow In DtTraspasos.Select("CveTipoAlmacen = 26")
+ CveMovimientoSalida = Dr1("CveMovimientoSalida").ToString.ToEntero
+
+ Dim CveAlmacenExA As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveTipoAlmacen:=10).FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto={CveSubProyecto}").ToEntero()
+
+ CveMovimientoEntradaApartado = ObjInventario.AddMovimiento(CveAlmacenExA, 9, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1,
+ Observaciones:=TxtObservaciones.Text.Trim, CveAlmacenDestino:=DdlAlmacen.SelectedValue.ToEntero, CveMovimientoRelacionado:=CveMovimientoSalida,
+ Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=CveCliente, Modulo:="RE/G4")
+ FolioEntrada = ObjInventario.Folio
+
+ If Not CveMovimientoEntradaApartado > 0 Then
+ ErrorMovInv = True
+ TextoError.AppendFormat("Ocurrió un error al procesar los movimientos de traspaso de apartado. Por favor vuelva a intentar.")
+ Exit For
+ End If
+
+ Dr1("CveMovimientoEntrada") = CveMovimientoEntradaApartado
+ Dr1("FolioEntrada") = FolioEntrada
+
+ If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
+ For Each Dr As DataRow In ObjInventario.DtResultados.Rows
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntradaApartado, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, CveAF:=Dr("CveAF").ToString.ToEntero, Serie:=Dr("Serie").ToString, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("FechaCaducidad").ToString.ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then
+ ErrorMovInv = True
+ TextoError.AppendFormat("Ocurrió un error al procesar los conceptos de traspaso de apartado. Por favor vuelva a intentar.")
+ Exit For
+ End If
+ Next
+ End If
+
+ If ErrorMovInv Then Exit For
+
+ Next
+ End If
+ End If
+
+ If Not ErrorMovInv Then
+ For Each DrMovto As DataRow In DtTraspasos.FiltraParametros("CveConceptoMovimientoSalida = 40").Rows
+ ErrorMovInv = Not GenerarPrePoliza(ObjInventario, ObjVentas, ObjConta, DrMovto("CveMovimientoSalida").ToString().ToEntero(), TextoError)
+ If ErrorMovInv Then
+ Exit For
+ End If
+ Next
+ End If
+
+ ''TERMINA: SIN COSTO
'' COMIENZA: APARTADOS
Dim CantidadPendiente As Decimal = 0
Dim CantidadSaldo As Decimal = 0
- If CveVendedor > 0 AndAlso (UsuarioActual.Empresa.Funcionalidad(146) = "1" Or CveCliente > 0) Then 'no debe considerar cuando es pedido de contrato
+ If Not ErrorMovInv AndAlso CveVendedor > 0 AndAlso (UsuarioActual.Empresa.Funcionalidad(146) = "1" Or CveCliente > 0) Then 'no debe considerar cuando es pedido de contrato
If TipoMovimiento = 1 Then ' SI ES DEVOLUCION NO APLICA APARTADO
' SALIDA POR TRASPASO DE LOS ALMACENES DE APARTADO
For Each Dr As DataRow In DtDatos.Rows
@@ -1749,6 +1994,8 @@ Partial Class Inventarios_EntregaAlmacen
DrMovto("CveAlmacen") = Dr2("CveAlmacen").ToString.ToEntero
DrMovto("CveMovimientoSalida") = CveMovimientoSalida
DrMovto("FolioSalida") = FolioSalida
+ DrMovto("CveTipoAlmacen") = 9
+ DrMovto("CveConceptoMovimientoSalida") = 8
DtTraspasos.Rows.Add(DrMovto)
End If
@@ -1800,6 +2047,8 @@ Partial Class Inventarios_EntregaAlmacen
DrMovto("CveAlmacen") = Dr2("CveAlmacen").ToString.ToEntero
DrMovto("CveMovimientoSalida") = CveMovimientoSalida
DrMovto("FolioSalida") = FolioSalida
+ DrMovto("CveTipoAlmacen") = 9
+ DrMovto("CveConceptoMovimientoSalida") = 8
DtTraspasos.Rows.Add(DrMovto)
End If
@@ -1849,6 +2098,8 @@ Partial Class Inventarios_EntregaAlmacen
DrMovto("CveAlmacen") = Dr1("CveAlmacen").ToString.ToEntero
DrMovto("CveMovimientoSalida") = CveMovimientoSalida
DrMovto("FolioSalida") = FolioSalida
+ DrMovto("CveTipoAlmacen") = 9
+ DrMovto("CveConceptoMovimientoSalida") = 8
DtTraspasos.Rows.Add(DrMovto)
End If
@@ -1885,7 +2136,7 @@ Partial Class Inventarios_EntregaAlmacen
'ENTRADA POR TRASPASO AL ALMACEN GENERAL
If Not ErrorMovInv Then
- For Each Dr1 As DataRow In DtTraspasos.Rows
+ For Each Dr1 As DataRow In DtTraspasos.Select("CveTipoAlmacen = 9")
CveMovimientoSalida = Dr1("CveMovimientoSalida").ToString.ToEntero
CveMovimientoEntradaApartado = ObjInventario.AddMovimiento(DdlAlmacen.SelectedValue.ToEntero, 9, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1,
@@ -1921,7 +2172,7 @@ Partial Class Inventarios_EntregaAlmacen
'' TERMINA: APARTADOS
' COMIENZA: GARANTIAS
- If TipoDocto.Contiene("Ing", "Rem") AndAlso UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso TipoMovimiento = 1 Then
+ If Not ErrorMovInv AndAlso TipoDocto.Contiene("Ing", "Rem") AndAlso UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso TipoMovimiento = 1 Then
Dim CveAlmacenGarantia As Integer = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 6).FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto={CveSubProyecto}").ToEntero()
Dim DtGarantias As DataTable = Nothing
@@ -1947,12 +2198,71 @@ Partial Class Inventarios_EntregaAlmacen
End If
Next
End If
+ End If
+ ' TERMINA: GARANTIAS
+
+ 'DEVOLUCION DE SIN COSTO
+ Dim CantidadEntradaSinCosto As Decimal = 0
+
+ If Not ErrorMovInv AndAlso TipoMovimiento = 2 AndAlso UsuarioActual.Empresa.Funcionalidad(587) = "1" Then
+ For Each Dr1 As DataRow In DtExistencias.FiltraParametros("CveTipoAlmacenDevolucion = 26").Rows
+ Dim CveMovimientoSalidaSinCosto = Dr1("CveMovimiento").ToString.ToEntero
+
+ 'Dim CveAlmacenSinCosto As Integer = Dr1("CveAlmacenDevolucion").ToString().ToEntero()
+
+ 'Dim AlmacenSinCosto As String = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveTipoAlmacen:=26).FiltroPrimeroValor("Almacen", $"CveAlmacen={CveAlmacenSinCosto}").ToString()
+
+ Dim CveMovimientoDevolucionSinCosto = ObjInventario.AddMovimiento(DdlAlmacen.SelectedValue.ToEntero(), 41, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1,
+ Observaciones:=TxtObservaciones.Text.Trim, CveAlmacenDestino:=DdlAlmacen.SelectedValue.ToEntero, CveMovimientoRelacionado:=CveMovimientoSalida,
+ Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=CveCliente, Modulo:="RE/G4")
+ Dim FolioDevSinCosto = ObjInventario.Folio
+
+ If Not CveMovimientoDevolucionSinCosto > 0 Then
+ ErrorMovInv = True
+ TextoError.AppendFormat("Ocurrió un error al procesar los movimientos de traspaso de apartado. Por favor vuelva a intentar.")
+ Exit For
+ End If
+
+ If ObjInventario.GetMovimientosDetalle(CveMovimientoSalidaSinCosto, UsuarioActual.CveEmpresa) Then
+ For Each Dr As DataRow In ObjInventario.DtResultados.Rows
+
+ CantidadEntradaSinCosto += Dr("Cantidad").ToString.ToDecimal()
+
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoDevolucionSinCosto, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, CveAF:=Dr("CveAF").ToString.ToEntero, Serie:=Dr("Serie").ToString, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("FechaCaducidad").ToString.ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then
+ ErrorMovInv = True
+ TextoError.AppendFormat("Ocurrió un error al procesar los conceptos de traspaso de apartado. Por favor vuelva a intentar.")
+ Exit For
+ End If
+ Next
+ End If
+
+ If ErrorMovInv Then Exit For
+
+ Dim DrMovto = DtDevSinCosto.NewRow
+ DrMovto("Almacen") = DdlAlmacen.SelectedItem.Text
+ DrMovto("CveAlmacen") = DdlAlmacen.SelectedValue.ToEntero()
+ DrMovto("CveMovimientoEntrada") = CveMovimientoDevolucionSinCosto
+ DrMovto("FolioEntrada") = FolioDevSinCosto
+ DrMovto("CveTipoAlmacen") = 10
+ DrMovto("CveConceptoMovimientoSalida") = 41
+ DtDevSinCosto.Rows.Add(DrMovto)
+
+ If Not ErrorMovInv Then
+ ErrorMovInv = Not GenerarPrePoliza(ObjInventario, ObjVentas, ObjConta, CveMovimientoDevolucionSinCosto, TextoError)
+ End If
+
+ Next
End If
- ' TERMINA: GARANTIAS
-
-
- If Not ErrorMovInv Then
+ Dim CantidadPendientePorSalir As Decimal = DtDatos.SUM("CantidadGV").ToDecimal()
+
+ If TipoMovimiento = 1 Then
+ CantidadPendientePorSalir = CantidadPendientePorSalir - CantidadSalidaSinCosto
+ ElseIf TipoMovimiento = 2 Then
+ CantidadPendientePorSalir = CantidadPendientePorSalir - CantidadEntradaSinCosto
+ End If
+
+ If Not ErrorMovInv AndAlso CantidadPendientePorSalir > 0 Then
Dim ConceptoMovimiento = 3
ConceptoMovimiento = If(TipoMovimiento = 1, ConceptoMovimiento, 18)
ConceptoMovimiento = If(CveAlmacenTraspasoDestino > 0, 8, ConceptoMovimiento)
@@ -1992,7 +2302,7 @@ Partial Class Inventarios_EntregaAlmacen
If CveMovimiento > 0 Then
'SACA LO DE TRASPASOS - APARTADO
- For Each Dr1 As DataRow In DtTraspasos.Rows
+ For Each Dr1 As DataRow In DtTraspasos.Select("CveTipoAlmacen = 9")
CveMovimientoSalida = Dr1("CveMovimientoEntrada").ToString.ToEntero
If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
If ObjInventario.DtResultados.Rows.Count = 0 Then
@@ -2019,7 +2329,7 @@ Partial Class Inventarios_EntregaAlmacen
CantidadPendiente = 0
Dim Cont As Integer = 0
For Each Dr As DataRow In DtDatos.Rows
- CantidadPendiente = Dr("CantidadGV").ToString.ToDecimal - Dr("CantidadTraspaso").ToString.ToDecimal
+ CantidadPendiente = Dr("CantidadGV").ToString.ToDecimal - Dr("CantidadTraspaso").ToString.ToDecimal - CantidadEntradaSinCosto
If CantidadPendiente > 0 Then
Dim PU As Decimal = 0
@@ -2029,7 +2339,7 @@ Partial Class Inventarios_EntregaAlmacen
If DtDetalle.Rows.Count > 0 Then
For Each Dr1 As DataRow In DtDetalle.Rows
If TipoMovimiento = 2 AndAlso DtExistencias IsNot Nothing Then
- PU = DtExistencias.FiltroPrimeroValor("PU", $"CvePS = {Dr("CvePS")} AND CveUM = {Dr("CveUM").ToString.ToEntero} AND Serie = '{Dr1("Serie").ToString}'").ToString.ToDecimal
+ PU = DtExistencias.FiltroPrimeroValor("PU", $"CveTipoAlmacenDevolucion <> 26 AND CvePS = {Dr("CvePS")} AND CveUM = {Dr("CveUM").ToString.ToEntero} AND Serie = '{Dr1("Serie").ToString}'").ToString.ToDecimal
End If
If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, 1, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, PU, Serie:=Dr1("Serie").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("FechaCaducidad").ToString.ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then
@@ -2076,137 +2386,41 @@ Partial Class Inventarios_EntregaAlmacen
Else
ErrorMovInv = True
End If
- End If
- 'End If
+ 'ENTRADA POR TRASPASO CUANDO ES REMISION
+ If Not ErrorMovInv Then
+ If CveAlmacenTraspasoDestino > 0 AndAlso Not (TipoMovimiento = 2 And TipoDocto = "Dev" And EsDevolucionVenta = 1) Then ' TRASPASO CUANDO ES REMISION
+ CveMovimientoEntrada = ObjInventario.AddMovimiento(CveAlmacenTraspasoDestino, 9, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveContrato:=CveContrato,
+ CveMovimientoRelacionado:=CveMovimiento, CveAlmacenDestino:=DdlAlmacen.SelectedValue.ToEntero, Modulo:="RE/G8")
+ FolioEntrada = ObjInventario.Folio
- 'ENTRADA POR TRASPASO CUANDO ES REMISION
- If Not ErrorMovInv Then
- If CveAlmacenTraspasoDestino > 0 AndAlso Not (TipoMovimiento = 2 And TipoDocto = "Dev" And EsDevolucionVenta = 1) Then ' TRASPASO CUANDO ES REMISION
- CveMovimientoEntrada = ObjInventario.AddMovimiento(CveAlmacenTraspasoDestino, 9, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveContrato:=CveContrato,
- CveMovimientoRelacionado:=CveMovimiento, CveAlmacenDestino:=DdlAlmacen.SelectedValue.ToEntero, Modulo:="RE/G8")
- FolioEntrada = ObjInventario.Folio
-
- If CveMovimientoEntrada <= 0 Then
- TextoError.AppendFormat("No se pudo generar el movimiento de entrada correctamente")
- ErrorMovInv = True
- Else
- If ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) AndAlso ObjInventario.DtResultados.Rows.Count > 0 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.ToDecimal, CveAF:=Dr("CveAF").ToString.ToEntero, CveSeccionAlmacen:=Dr("CveSeccionAlmacen").ToString.ToEntero, Serie:=Dr("Serie").ToString, Lote:=Dr("Lote").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, EsInterno:=EsInterno, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero()) Then
- ErrorMovInv = True
- TextoError.AppendFormat("Ocurrió un error al guardar los movimientos de entrada")
- Exit For
- End If
- Next
- Else
+ If CveMovimientoEntrada <= 0 Then
+ TextoError.AppendFormat("No se pudo generar el movimiento de entrada correctamente")
ErrorMovInv = True
- TextoError.AppendFormat("Ocurrió un error al guardar los movimientos de entrada")
- End If
- End If
-
- Else 'REGISTRO LA PREPOLIZA DE COSTO VS ALMACEN - SALIDA ALMACEN
- Dim DtCostos As DataTable = Nothing
- Dim ValorInventario As Decimal = 0
- If ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) Then
- DtCostos = ObjInventario.DtResultados
-
- Dim tmpCostos As DataTable = DtCostos.FiltraParametros("", "", {"CveClasificacion"})
- Dim IdCtaContableAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", $"CveAlmacen = {DdlAlmacen.SelectedValue}").ToEntero
- Dim CveCuentaAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContableSIG", $"CveAlmacen = {DdlAlmacen.SelectedValue}").ToEntero
- Dim IdCtaContable As Integer = 0
- Dim CveCuenta As Integer = 0
- If tmpCostos.Rows.Count > 0 Then
-
-
- If ObjVentas.GetVenta(CveVentaSurtir, UsuarioActual.CveEmpresa) Then
- Dim Fecha As Date = TxtFecha.Text.ToDate ' If(TipoMovimiento <> 1, TxtFecha.Text.ToDate, ObjVentas.DtResultados(0)("Fecha").ToString.ToDate)
- Dim CveCliente As Integer = ObjVentas.DtResultados(0)("CveCliente").ToString.ToEntero
- Dim ClienteNombre As String = ObjVentas.DtResultados(0)("ClienteNombre").ToString
- Dim Serie As String = ObjVentas.DtResultados(0)("Serie").ToString
- Dim TotalCosto As Decimal = DtCostos.SUMD("Total").RoundSQL()
- Dim TotalCostoAcumulado As Decimal = 0
- Dim cont As Integer = 1
-
- Dim ValorMultiplicador = 1
-
- If TipoMovimiento = 1 Then
- ValorMultiplicador = 1
- ElseIf TipoMovimiento = 2 Then
- ValorMultiplicador = -1
- ElseIf TipoMovimiento = 2 AndAlso TipoDocto.Contiene({"Dev"}) And (EsDevolucionVenta = 1) Then
- ValorMultiplicador = 1
- End If
-
- Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("Inventario/RecepcionEntrega", 4, TotalCosto, TotalCosto, 1, Fecha, ClienteNombre, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
- 'Se agrega movimiento separado por la cuenta de ventas (ER)
-
- If CvePrePoliza > 0 Then
-
- For Each RowInv As DataRow In tmpCostos.Rows
- ValorInventario = DtCostos.SUMD("Total", $"CveClasificacion = {RowInv("CveClasificacion")}").RoundSQL()
- TotalCostoAcumulado += ValorInventario
-
- 'cuando es el último movimiento y hay diferencias en los importes
- If cont = DtCostos.FiltraParametros("", "", {"CveClasificacion"}).Rows.Count AndAlso TotalCosto <> TotalCostoAcumulado Then
- ValorInventario = ValorInventario + (TotalCosto - TotalCostoAcumulado)
- End If
-
- 'Concepto = String.Format("{0} - {1}", Row2("Clasificacion").ToString, Row2("SubProyecto").ToString)
- IdCtaContable = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaCostos", $"CveClasificacion = {RowInv("CveClasificacion")}").ToEntero
- CveCuenta = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaCostosSIG", $"CveClasificacion = {RowInv("CveClasificacion")}").ToEntero
-
- If Not ErrorMovInv Then
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ValorMultiplicador * ValorInventario, Serie, 69, Serie, Fecha, IdCtaContable, -1, CveVenta:=CveVentaSurtir, CveCliente:=CveCliente, CveMovimientoAlmacen:=CveMovimiento, CveSubProyecto:=CveSubProyecto, ImporteMX:=ValorMultiplicador * ValorInventario, CveCuenta:=CveCuenta, CveClasificacion:=RowInv("CveClasificacion").ToString.ToEntero) Then
- ErrorMovInv = True
- End If
- End If
-
- cont += 1
- Next
-
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ValorMultiplicador * TotalCosto, Serie, 68, Serie, Fecha, IdCtaContableAlmacen, -1, CveVenta:=CveVentaSurtir, CveCliente:=CveCliente, CveMovimientoAlmacen:=CveMovimiento, CveSubProyecto:=CveSubProyecto, ImporteMX:=ValorMultiplicador * TotalCosto, CveCuenta:=CveCuentaAlmacen) Then
+ Else
+ If ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) AndAlso ObjInventario.DtResultados.Rows.Count > 0 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.ToDecimal, CveAF:=Dr("CveAF").ToString.ToEntero, CveSeccionAlmacen:=Dr("CveSeccionAlmacen").ToString.ToEntero, Serie:=Dr("Serie").ToString, Lote:=Dr("Lote").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, EsInterno:=EsInterno, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero()) Then
ErrorMovInv = True
+ TextoError.AppendFormat("Ocurrió un error al guardar los movimientos de entrada")
+ Exit For
End If
-
- 'AutoConta - El movimiento 1 es el de Venta
- Dim AutoConta As Boolean = UsuarioActual.Empresa.Funcionalidad(200) = "1"
-
- If AutoConta And Not ErrorMovInv Then
- Dim ObjContPaq = New ClsContPAQi(UsuarioActual.Empresa)
-
- If IdCtaContable > 0 Then
- If Not ObjConta.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa, ObjConta:=ObjContPaq) Then
- Alert("Ocurrio un Error al contabilizar, pongase en contacto con Soporte Técnico")
- ErrorMovInv = True
- TextoError.AppendFormat("Ocurrio un Error al contabilizar, pongase en contacto con Soporte Técnico")
- End If
- Else
- Alert(String.Format("No se puede contabilizar ya que falta asignación de las cuentas contables"), TipoMensaje.MsgAdvertencia)
- End If
-
- ObjContPaq.Dispose()
- End If
- Else
- ErrorMovInv = True
- TextoError.AppendFormat("Ocurrió un Error al ingresar la prepoliza.1")
- End If
+ Next
Else
ErrorMovInv = True
- TextoError.AppendFormat("Ocurrió un Error al ingresar las prepolizas.2")
+ TextoError.AppendFormat("Ocurrió un error al guardar los movimientos de entrada")
End If
- Else
- ErrorMovInv = True
- TextoError.AppendFormat("Ocurrió un Error al ingresar las prepolizas.3")
End If
- Else
- ErrorMovInv = True
- TextoError.AppendFormat("Ocurrió un Error al ingresar las prepolizas.4")
+
+ Else 'REGISTRO LA PREPOLIZA DE COSTO VS ALMACEN - SALIDA ALMACEN
+ ErrorMovInv = Not GenerarPrePoliza(ObjInventario, ObjVentas, ObjConta, CveMovimiento, TextoError)
End If
+
End If
End If
+
'DEVOLUCION APARTADOS
If Not ErrorMovInv Then
If TipoMovimiento = 2 Then
@@ -2409,41 +2623,45 @@ Partial Class Inventarios_EntregaAlmacen
End If
End If
+ 'Paqueterias guias
+ If RbEntregaInterna.Checked AndAlso Not ErrorMovInv Then
+ Dim CveEstatus As Integer = DdlEstatus.SelectedValue.ToEntero()
+ Dim Fecha As String = TxtFechaPaqInterna.Text
+ Dim FechaEstimada As String = If(TxtFechaEstimada.Text = "", "-1", TxtFechaEstimada.Text)
+ Dim NoCajas As Integer = TxtNoCajas.Text.ToEntero()
+ Dim Observaciones As String = TxtObservacionesPaqInterna.Text
+ Dim CvePaqueteria As Integer = GlobalDTPaqueterias().FiltroPrimeroValor("CvePaqueteria", String.Format("CveEmpresa={0} AND TipoPaqueteria = 0", UsuarioActual.CveEmpresa)).ToEntero
+
+ If CveSubProyecto > 0 Then
+ Dim CvePaqueteriaGuia As Integer = ObjGeneral.AddPaqueteriasGuias(CvePaqueteria, 9, CveEstatus, CveSubProyecto, Fecha, "", "", NoCajas, 0.00, "-1", FechaEstimada, Observaciones, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, EsEntregaInterna:=True)
+
+ If CvePaqueteriaGuia > 0 Then
+
+ If CveVentaSurtir > 0 OrElse CveSubProyecto > 0 Then
+ If ObjGeneral.AddPaqueteriasGuiasDetalles(CvePaqueteriaGuia, CveVentaSurtir, -1, CveMovimiento, -1) Then
+ ''manda correo
+ MandaCorreoEntrega(CveVentaSurtir)
+ Else
+ ErrorMovInv = True
+ End If
+ End If
+ If ErrorMovInv Then
+ Alert("Error en el paqueteria guia detalle", TipoMensaje.MsgError)
+ End If
+ Else
+ ErrorMovInv = True
+ Alert("Error en el paqueteria guia", TipoMensaje.MsgError)
+ End If
+ Else
+ Alert("Hace falta indicar un Sub Proyecto", TipoMensaje.MsgAdvertencia)
+ ErrorMovInv = True
+ End If
+ End If
Catch ex As Exception
ErrorMovInv = True
OnError("Ocurrió un error al guardar", ex)
End Try
- 'Paqueterias guias
- If RbEntregaInterna.Checked AndAlso Not ErrorMovInv Then
- Dim CveEstatus As Integer = DdlEstatus.SelectedValue.ToEntero()
- Dim Fecha As String = TxtFechaPaqInterna.Text
- Dim FechaEstimada As String = If(TxtFechaEstimada.Text = "", "-1", TxtFechaEstimada.Text)
- Dim NoCajas As Integer = TxtNoCajas.Text.ToEntero()
- Dim Observaciones As String = TxtObservacionesPaqInterna.Text
- Dim CvePaqueteria As Integer = GlobalDTPaqueterias().FiltroPrimeroValor("CvePaqueteria", String.Format("CveEmpresa={0} AND TipoPaqueteria = 0", UsuarioActual.CveEmpresa)).ToEntero
-
- Dim CvePaqueteriaGuia As Integer = ObjGeneral.AddPaqueteriasGuias(CvePaqueteria, 9, CveEstatus, CveSubProyecto, Fecha, "", "", NoCajas, 0.00, "-1", FechaEstimada, Observaciones, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, EsEntregaInterna:=True)
-
- If CvePaqueteriaGuia > 0 Then
-
- If CveVentaSurtir > 0 OrElse CveSubProyecto > 0 Then
- If ObjGeneral.AddPaqueteriasGuiasDetalles(CvePaqueteriaGuia, CveVentaSurtir, -1, CveMovimiento, -1) Then
- ''manda correo
- MandaCorreoEntrega(CveVentaSurtir)
- Else
- ErrorMovInv = True
- End If
- End If
- If ErrorMovInv Then
- Alert("Error en el paqueteria guia detalle", TipoMensaje.MsgError)
- End If
- Else
- ErrorMovInv = True
- Alert("Error en el paqueteria guia", TipoMensaje.MsgError)
- End If
- End If
-
If Not ErrorMovInv Then
ObjInventario.Commit()
@@ -2459,13 +2677,30 @@ Partial Class Inventarios_EntregaAlmacen
Msg.AppendFormat(" Imprimir Movimiento ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoEntrada)))
End If
- If DtTraspasos.Rows.Count > 0 Then
+ If DtTraspasos.FiltraParametros("CveTipoAlmacen=9").Rows.Count > 0 Then
Msg.AppendFormat("
Movimientos de Control (Apartados):")
For Each Dr As DataRow In DtTraspasos.Rows
Msg.AppendFormat(" Almacén {0} | Salida por Traspaso: {2} | Entrada por Traspaso: {4} ", Dr("Almacen"), Dr("CveMovimientoSalida"), Dr("FolioSalida"), Dr("CveMovimientoEntrada"), Dr("FolioEntrada"))
Next
End If
+ If DtTraspasos.FiltraParametros("CveTipoAlmacen=26").Rows.Count > 0 Then
+ Msg.AppendFormat("
Movimientos de Control (Sin Costo):")
+ For Each Dr As DataRow In DtTraspasos.FiltraParametros("CveConceptoMovimientoSalida=40").Rows
+ Msg.AppendFormat(" Almacén {0} | Salida directa de almacen: {2} ", Dr("Almacen"), Dr("CveMovimientoSalida"), Dr("FolioSalida"), Dr("CveMovimientoEntrada"), Dr("FolioEntrada"))
+ Next
+ For Each Dr As DataRow In DtTraspasos.FiltraParametros("CveConceptoMovimientoSalida=8").Rows
+ Msg.AppendFormat(" Almacén {0} | Salida por Traspaso: {2} ", Dr("Almacen"), Dr("CveMovimientoSalida"), Dr("FolioSalida"), Dr("CveMovimientoEntrada"), Dr("FolioEntrada"))
+ Next
+ End If
+
+ If DtDevSinCosto.Rows.Count > 0 Then
+ Msg.AppendFormat("
Movimientos de Control (Sin Costo):")
+ For Each Dr As DataRow In DtDevSinCosto.Rows
+ Msg.AppendFormat(" Almacén {0} | Devolución directa de almacen: {2} ", Dr("Almacen"), Dr("CveMovimientoEntrada"), Dr("FolioEntrada"))
+ Next
+ End If
+
If CveMovimientoGarantia > 0 Then
Msg.AppendFormat(" Movimiento de Entrada (garantías): {1}", CveMovimientoGarantia, FolioGarantia)
Msg.AppendFormat(" Imprimir Movimiento ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoGarantia)))
@@ -2500,6 +2735,109 @@ Partial Class Inventarios_EntregaAlmacen
End Sub
+ Private Function GenerarPrePoliza(ByRef ObjInventario As ClsInventarios, ByRef ObjVentas As ClsVentas, ByRef ObjConta As ClsContabilidad, CveMovimiento As Integer, ByRef TextoError As StringBuilder) As Boolean
+ Dim ErrorMovInv As Boolean = False
+ Dim DtCostos As DataTable = Nothing
+ Dim ValorInventario As Decimal = 0
+ If ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) Then
+ DtCostos = ObjInventario.DtResultados
+
+ Dim tmpCostos As DataTable = DtCostos.FiltraParametros("", "", {"CveClasificacion"})
+ Dim IdCtaContableAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", $"CveAlmacen = {DdlAlmacen.SelectedValue}").ToEntero
+ Dim CveCuentaAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContableSIG", $"CveAlmacen = {DdlAlmacen.SelectedValue}").ToEntero
+ Dim IdCtaContable As Integer = 0
+ Dim CveCuenta As Integer = 0
+ If tmpCostos.Rows.Count > 0 Then
+
+
+ If ObjVentas.GetVenta(CveVentaSurtir, UsuarioActual.CveEmpresa) Then
+ Dim Fecha As Date = TxtFecha.Text.ToDate ' If(TipoMovimiento <> 1, TxtFecha.Text.ToDate, ObjVentas.DtResultados(0)("Fecha").ToString.ToDate)
+ Dim CveCliente As Integer = ObjVentas.DtResultados(0)("CveCliente").ToString.ToEntero
+ Dim ClienteNombre As String = ObjVentas.DtResultados(0)("ClienteNombre").ToString
+ Dim Serie As String = ObjVentas.DtResultados(0)("Serie").ToString
+ Dim TotalCosto As Decimal = DtCostos.SUMD("Total").RoundSQL()
+ Dim TotalCostoAcumulado As Decimal = 0
+ Dim cont As Integer = 1
+
+ Dim ValorMultiplicador = 1
+
+ If TipoMovimiento = 1 Then
+ ValorMultiplicador = 1
+ ElseIf TipoMovimiento = 2 Then
+ ValorMultiplicador = -1
+ ElseIf TipoMovimiento = 2 AndAlso TipoDocto.Contiene({"Dev"}) And (EsDevolucionVenta = 1) Then
+ ValorMultiplicador = 1
+ End If
+
+ Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("Inventario/RecepcionEntrega", 4, TotalCosto, TotalCosto, 1, Fecha, ClienteNombre, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
+ 'Se agrega movimiento separado por la cuenta de ventas (ER)
+
+ If CvePrePoliza > 0 Then
+
+ For Each RowInv As DataRow In tmpCostos.Rows
+ ValorInventario = DtCostos.SUMD("Total", $"CveClasificacion = {RowInv("CveClasificacion")}").RoundSQL()
+ TotalCostoAcumulado += ValorInventario
+
+ 'cuando es el último movimiento y hay diferencias en los importes
+ If cont = DtCostos.FiltraParametros("", "", {"CveClasificacion"}).Rows.Count AndAlso TotalCosto <> TotalCostoAcumulado Then
+ ValorInventario = ValorInventario + (TotalCosto - TotalCostoAcumulado)
+ End If
+
+ 'Concepto = String.Format("{0} - {1}", Row2("Clasificacion").ToString, Row2("SubProyecto").ToString)
+ IdCtaContable = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaCostos", $"CveClasificacion = {RowInv("CveClasificacion")}").ToEntero
+ CveCuenta = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaCostosSIG", $"CveClasificacion = {RowInv("CveClasificacion")}").ToEntero
+
+ If Not ErrorMovInv Then
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ValorMultiplicador * ValorInventario, Serie, 69, Serie, Fecha, IdCtaContable, -1, CveVenta:=CveVentaSurtir, CveCliente:=CveCliente, CveMovimientoAlmacen:=CveMovimiento, CveSubProyecto:=CveSubProyecto, ImporteMX:=ValorMultiplicador * ValorInventario, CveCuenta:=CveCuenta, CveClasificacion:=RowInv("CveClasificacion").ToString.ToEntero) Then
+ ErrorMovInv = True
+ End If
+ End If
+
+ cont += 1
+ Next
+
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ValorMultiplicador * TotalCosto, Serie, 68, Serie, Fecha, IdCtaContableAlmacen, -1, CveVenta:=CveVentaSurtir, CveCliente:=CveCliente, CveMovimientoAlmacen:=CveMovimiento, CveSubProyecto:=CveSubProyecto, ImporteMX:=ValorMultiplicador * TotalCosto, CveCuenta:=CveCuentaAlmacen) Then
+ ErrorMovInv = True
+ End If
+
+ 'AutoConta - El movimiento 1 es el de Venta
+ Dim AutoConta As Boolean = UsuarioActual.Empresa.Funcionalidad(200) = "1"
+
+ If AutoConta And Not ErrorMovInv Then
+ Dim ObjContPaq = New ClsContPAQi(UsuarioActual.Empresa)
+
+ If IdCtaContable > 0 Then
+ If Not ObjConta.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa, ObjConta:=ObjContPaq) Then
+ Alert("Ocurrio un Error al contabilizar, pongase en contacto con Soporte Técnico")
+ ErrorMovInv = True
+ TextoError.AppendFormat("Ocurrio un Error al contabilizar, pongase en contacto con Soporte Técnico")
+ End If
+ Else
+ Alert(String.Format("No se puede contabilizar ya que falta asignación de las cuentas contables"), TipoMensaje.MsgAdvertencia)
+ End If
+
+ ObjContPaq.Dispose()
+ End If
+ Else
+ ErrorMovInv = True
+ TextoError.AppendFormat("Ocurrió un Error al ingresar la prepoliza.1")
+ End If
+ Else
+ ErrorMovInv = True
+ TextoError.AppendFormat("Ocurrió un Error al ingresar las prepolizas.2")
+ End If
+ Else
+ ErrorMovInv = True
+ TextoError.AppendFormat("Ocurrió un Error al ingresar las prepolizas.3")
+ End If
+ Else
+ ErrorMovInv = True
+ TextoError.AppendFormat("Ocurrió un Error al ingresar las prepolizas.4")
+ End If
+
+ Return Not ErrorMovInv
+ End Function
+
Private Sub GuardaTraspaso()
'OBLIGA A SURTIR TODO
@@ -2511,6 +2849,40 @@ Partial Class Inventarios_EntregaAlmacen
End If
Next
+ Dim ValidaSeccion As Boolean = False : Dim ValidaCaducidad As Boolean = False : Dim ValidaLote As Boolean = False
+ 'VALIDA CANTIDAD DE SALIDA
+ Dim Cantidad As Decimal = 0.0D
+ For Each Gvr As GridViewRow In GvDatos.Rows
+ If CBool(Gvr.DataKey("AplicaSeccion")) AndAlso Gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero <= 0 Then
+ ValidaSeccion = True
+ End If
+ If CBool(Gvr.DataKey("AplicaCaducidad")) AndAlso Gvr.FCTextBox("TxtCaducidad").Text.Trim = "" Then
+ ValidaCaducidad = True
+ End If
+ If CBool(Gvr.DataKey("AplicaLote")) AndAlso Gvr.FCTextBox("TxtLote").Text.Trim = "" Then
+ ValidaLote = True
+ End If
+
+ If Gvr.FCCheckBox("cbInv").Checked AndAlso Gvr.FCTextBox("TbCantidadF").Text.ToDecimal > 0 Then
+ Cantidad = Gvr.FCTextBox("TbCantidadF").Text.ToDecimal
+ Exit For
+ End If
+
+ Next
+
+ If ValidaSeccion Then
+ Alert("La sección de almacen no ha sido especificada en todos los productos.", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
+ If ValidaCaducidad Then
+ Alert("La caducidad no ha sido especificada en todos los productos.", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
+ If ValidaLote Then
+ Alert("El lote de almacen no ha sido especificada en todos los productos.", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
+
'VALIDA TRANSITORIO
If ChkTransitorio.Checked Then
If TxtResponsable.Text.Trim = "" Then
@@ -2545,6 +2917,9 @@ Partial Class Inventarios_EntregaAlmacen
For Each gvr As GridViewRow In GvDatos.Rows
If gvr.FCCheckBox("cbInv").Checked AndAlso gvr.FCTextBox("TbCantidadF").Text.ToDecimal > 0 Then
DtDatos.Rows(Index)("CantidadGV") = gvr.FCTextBox("TbCantidadF").Text.ToDecimal
+ DtDatos.Rows(Index)("CveSeccion") = gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero
+ DtDatos.Rows(Index)("FechaCaducidad") = gvr.FCTextBox("TxtCaducidad").Text.ToDate
+ DtDatos.Rows(Index)("Lote") = gvr.FCTextBox("TxtLote").Text
End If
Index += 1
Next
@@ -2636,13 +3011,18 @@ Partial Class Inventarios_EntregaAlmacen
FolioSalida = ObjInventario.Folio
If CveMovimientoSalida > 0 Then
Dim CantidadPendiente As Decimal = 0
+ Dim CveSeccionAlmacen As Integer = -1
For Each Dr As DataRow In DtDatos.Rows
+ FechaCaducidad = If(CBool(Dr("AplicaCaducidad")) AndAlso Dr("FechaCaducidad").ToString <> "", Dr("FechaCaducidad").ToString.ToDate, MinFecha)
+ Lote = If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1")
+ CveSeccionAlmacen = If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)
+
DtDetalle = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0} AND FueTraspaso IS NULL", Dr("Consec")))
DtDetalleLote = DtDatosDetalleLote.FiltraParametros(String.Format("ConsecId = {0} AND FueTraspaso IS NULL", Dr("Consec")))
If DtDetalle.Rows.Count > 0 Then 'SI FUE POR SERIE
For Each Dr1 As DataRow In DtDetalle.Rows
- If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, 1, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, Serie:=Dr1("Serie").ToString, CveVentaDetalle:=-1, CveContratoDetalle:=Dr("CveContratoDetalle").ToString.ToEntero) Then
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, 1, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, Serie:=Dr1("Serie").ToString, Lote:=Lote, FechaCaducidad:=FechaCaducidad, CveSeccionAlmacen:=CveSeccionAlmacen, CveVentaDetalle:=-1, CveContratoDetalle:=Dr("CveContratoDetalle").ToString.ToEntero) Then
ErrorMovInv = True
TextoError = "Ocurrió un error al procesar los conceptos con serie. Por favor vuelva a intentar."
Exit For
@@ -2650,14 +3030,14 @@ Partial Class Inventarios_EntregaAlmacen
Next
ElseIf DtDetalleLote.Rows.Count > 0 Then 'SI FUE POR LOTE BATCH
For Each Dr1 As DataRow In DtDetalleLote.Rows
- If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, Dr1("Cantidad").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, -1, Lote:=Dr1("Lote").ToString, CveVentaDetalle:=-1, CveContratoDetalle:=Dr("CveContratoDetalle").ToString.ToEntero) Then
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, Dr1("Cantidad").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, Serie:="", Lote:=Dr1("Lote").ToString, FechaCaducidad:=FechaCaducidad, CveSeccionAlmacen:=CveSeccionAlmacen, CveVentaDetalle:=-1, CveContratoDetalle:=Dr("CveContratoDetalle").ToString.ToEntero) Then
ErrorMovInv = True
TextoError = "Ocurrió un error al procesar los conceptos con serie. Por favor vuelva a intentar."
Exit For
End If
Next
Else 'NORMAL
- If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, Dr("CantidadGV").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, -1, -1, CveContratoDetalle:=Dr("CveContratoDetalle").ToString.ToEntero) Then
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, Dr("CantidadGV").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, -1, FechaCaducidad:=FechaCaducidad, CveSeccionAlmacen:=CveSeccionAlmacen, CveContratoDetalle:=Dr("CveContratoDetalle").ToString.ToEntero) Then
ErrorMovInv = True
TextoError = "Ocurrió un error al procesar los conceptos de salida. Por favor vuelva a intentar."
Exit For
@@ -2682,8 +3062,15 @@ Partial Class Inventarios_EntregaAlmacen
FolioEntrada = ObjInventario.Folio
If CveMovimientoEntrada > 0 Then
If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
+ Dim CveSeccionAlmacen As Integer = -1
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, CveAF:=Dr("CveAF").ToString.ToEntero, Serie:=Dr("Serie").ToString, Lote:=Dr("Lote").ToString, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero) Then
+ If CBool(Dr("AplicaSeccion")) Then
+ CveSeccionAlmacen = GlobalDTInvPSSeccionesAlmacen(UsuarioActual.CveEmpresa, Almacen2, Dr("CvePS").ToString.ToEntero).FiltroPrimeroValor("CveSeccionAlmacen").ToEntero
+ Else
+ CveSeccionAlmacen = -1
+ End If
+
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, CveAF:=Dr("CveAF").ToString.ToEntero, CveSeccionAlmacen:=CveSeccionAlmacen, Serie:=Dr("Serie").ToString, Lote:=Dr("Lote").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero) Then
ErrorMovInv = True
TextoError = "Ocurrió un error al guardar los movimientos de entrada"
Exit For
@@ -2713,13 +3100,15 @@ Partial Class Inventarios_EntregaAlmacen
Dim FechaEstimada As String = If(TxtFechaEstimada.Text = "", "-1", TxtFechaEstimada.Text)
Dim NoCajas As Integer = TxtNoCajas.Text.ToEntero()
Dim Observaciones As String = TxtObservacionesPaqInterna.Text
- Dim CvePaqueteriaGuia As Integer = ObjGeneral.AddPaqueteriasGuias(-1, -1, CveEstatus, CveSubProyecto, Fecha, "-1", "-1", NoCajas, 0.00, "-1", FechaEstimada, Observaciones, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, EsEntregaInterna:=True)
+ Dim CvePaqueteria As Integer = GlobalDTPaqueterias().FiltroPrimeroValor("CvePaqueteria", String.Format("CveEmpresa={0} AND TipoPaqueteria = 0", UsuarioActual.CveEmpresa)).ToEntero
+
+ Dim CvePaqueteriaGuia As Integer = ObjGeneral.AddPaqueteriasGuias(CvePaqueteria, 9, CveEstatus, CveSubProyecto, Fecha, "-1", "-1", NoCajas, 0.00, "-1", FechaEstimada, Observaciones, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, EsEntregaInterna:=True)
If CvePaqueteriaGuia > 0 Then
-
If CveVentaSurtir > 0 OrElse CveSubProyecto > 0 Then
- ErrorMovInv = Not ObjGeneral.AddPaqueteriasGuiasDetalles(CvePaqueteriaGuia, CveVentaSurtir, -1, CveMovimiento, -1)
+ ErrorMovInv = Not ObjGeneral.AddPaqueteriasGuiasDetalles(CvePaqueteriaGuia, CveVentaSurtir, -1, CveMovimientoEntrada, -1)
End If
+
If ErrorMovInv Then
Alert("Error en el paqueteria guia detalle", TipoMensaje.MsgError)
End If
@@ -2761,51 +3150,51 @@ Partial Class Inventarios_EntregaAlmacen
End Sub
- Private Sub MandaCorreoEntrega(tCveVenta As Integer)
- Dim Correo As New ClsSisMail()
- Dim SerieFolio As String = ""
- Dim Asunto As String = String.Format("{0} Envio de pedido: {1}", UsuarioActual.Empresa.NombreCorto, SerieFolio)
- Dim Cuerpo As New StringBuilder()
- Dim Destinatario As String = ""
- Dim MensajeEnviado = False
- Dim tCvecliente As Integer
-
-
- Dim ObjVentas As New ClsVentas()
-
- If (ObjVentas.GetVenta(tCveVenta, UsuarioActual.CveEmpresa)) Then
- Dim dr As DataRow = ObjVentas.DtResultados.FiltroPrimero("")
- Destinatario = String.Format("{0};{1}", dr("CorreoNotificacion"), dr("CorreoVendedorVenta"))
-
- tCvecliente = dr("CveCliente").ToString.ToEntero
-
- Dim drC As DataRow = GlobalDTCliente(UsuarioActual.CveEmpresa, CveCliente:=tCvecliente).FiltroPrimero("")
- Destinatario += String.Format("{0};{1}", drC("CorreoEntregaCompras"), drC("CorreoEntregaAlmacen"))
-
- Cuerpo.AppendLine(String.Format("Estimado {0} le informamos que los productos de la factura {1} han sido enviados a entrega.
Dudas y aclaraciones con su coordinador empresarial.")
-
- End If
- ObjVentas.Dispose()
-
-
- ' Dim ArchivoAdjunto As New ClsSisMail.ArchivoMail()
-
- 'Dim ListaAdjuntos As New List(ClsSisMail.ArchivoMail)
-
-
- 'If (File.Exists(RutaArchivoAdjunto))Then
- ' {
- ' ArchivoAdjunto.ArchivoBinario = File.ReadAllBytes(RutaArchivoAdjunto);
- ' ArchivoAdjunto.Ruta = RutaArchivoAdjunto;
- ' ArchivoAdjunto.NombreArchivo = new FileInfo(RutaArchivoAdjunto).Name;
- ' ListaAdjuntos.Add(ArchivoAdjunto);
- ' }
-
-
- MensajeEnviado = Correo.SendMail(UsuarioActual.Empresa, Destinatario, Asunto, Cuerpo.ToString())
-
-
+ Private Sub MandaCorreoEntrega(tCveVenta As Integer)
+ Dim Correo As New ClsSisMail()
+ Dim SerieFolio As String = ""
+ Dim Asunto As String = String.Format("{0} Envio de pedido: {1}", UsuarioActual.Empresa.NombreCorto, SerieFolio)
+ Dim Cuerpo As New StringBuilder()
+ Dim Destinatario As String = ""
+ Dim MensajeEnviado = False
+ Dim tCvecliente As Integer
+
+
+ Dim ObjVentas As New ClsVentas()
+
+ If (ObjVentas.GetVenta(tCveVenta, UsuarioActual.CveEmpresa)) Then
+ Dim dr As DataRow = ObjVentas.DtResultados.FiltroPrimero("")
+ Destinatario = String.Format("{0};{1}", dr("CorreoNotificacion"), dr("CorreoVendedorVenta"))
+
+ tCvecliente = dr("CveCliente").ToString.ToEntero
+
+ Dim drC As DataRow = GlobalDTCliente(UsuarioActual.CveEmpresa, CveCliente:=tCvecliente).FiltroPrimero("")
+ Destinatario += String.Format("{0};{1}", drC("CorreoEntregaCompras"), drC("CorreoEntregaAlmacen"))
+
+ Cuerpo.AppendLine(String.Format("Estimado {0} le informamos que los productos de la factura {1} han sido enviados a entrega.
Dudas y aclaraciones con su coordinador empresarial.")
+
+ End If
+ ObjVentas.Dispose()
+
+
+ ' Dim ArchivoAdjunto As New ClsSisMail.ArchivoMail()
+
+ 'Dim ListaAdjuntos As New List(ClsSisMail.ArchivoMail)
+
+
+ 'If (File.Exists(RutaArchivoAdjunto))Then
+ ' {
+ ' ArchivoAdjunto.ArchivoBinario = File.ReadAllBytes(RutaArchivoAdjunto);
+ ' ArchivoAdjunto.Ruta = RutaArchivoAdjunto;
+ ' ArchivoAdjunto.NombreArchivo = new FileInfo(RutaArchivoAdjunto).Name;
+ ' ListaAdjuntos.Add(ArchivoAdjunto);
+ ' }
+
+
+ MensajeEnviado = Correo.SendMail(UsuarioActual.Empresa, Destinatario, Asunto, Cuerpo.ToString())
+
+
End Sub
Private Sub Limpia()
diff --git a/Inventarios/EntregasPorRealizar.aspx b/Inventarios/EntregasPorRealizar.aspx
index 98b35e26b..7dbb9bc60 100644
--- a/Inventarios/EntregasPorRealizar.aspx
+++ b/Inventarios/EntregasPorRealizar.aspx
@@ -70,7 +70,7 @@
+
diff --git a/Inventarios/EntregasPorRealizar.aspx.cs b/Inventarios/EntregasPorRealizar.aspx.cs
index 47ab0e863..5c4ae65f8 100644
--- a/Inventarios/EntregasPorRealizar.aspx.cs
+++ b/Inventarios/EntregasPorRealizar.aspx.cs
@@ -86,7 +86,8 @@ public partial class Inventarios_EntregasPorRealizar : ClsPaginas
private void CargarPersonal()
{
- DdlUsuario.DataSource = get_GlobalDTUsuarios(CveEmpresa: UsuarioActual.CveEmpresa);
+ DataTable UsuariosConRolLogistico = get_GlobalDTUsuarios(CveEmpresa: UsuarioActual.CveEmpresa).FiltraParametros("CveRol IN (1339,1386,1430)");
+ DdlUsuario.DataSource = UsuariosConRolLogistico;
DdlUsuario.DataBind();
DdlUsuario.Items.Insert(0, new ListItem("Seleccione", "-1"));
}
diff --git a/Inventarios/PopUpExistenciasAlmacen.aspx.vb b/Inventarios/PopUpExistenciasAlmacen.aspx.vb
index a0b53ff50..2f729867e 100644
--- a/Inventarios/PopUpExistenciasAlmacen.aspx.vb
+++ b/Inventarios/PopUpExistenciasAlmacen.aspx.vb
@@ -104,7 +104,7 @@ Partial Class Inventarios_Default
If dr IsNot Nothing Then
LtPs.Text = $"Producto: {dr("PSCodigo").ToString}"
Dim CvePrecioLista As Integer = -1
- If Not UsuarioActual.Empresa.Funcionalidad(404).ToString = "1" Then 'sino manneja precios de lista
+ If Not UsuarioActual.Empresa.Funcionalidad(404).ToEntero > 0 Then 'sino manneja precios de lista
CvePrecioLista = -2
End If
diff --git a/Inventarios/RecepcionAlmacen.aspx b/Inventarios/RecepcionAlmacen.aspx
index 9b96fab08..c0e7de431 100644
--- a/Inventarios/RecepcionAlmacen.aspx
+++ b/Inventarios/RecepcionAlmacen.aspx
@@ -453,7 +453,7 @@
-
+
diff --git a/Inventarios/RecepcionAlmacen.aspx.vb b/Inventarios/RecepcionAlmacen.aspx.vb
index d63df0d6a..97c27073b 100644
--- a/Inventarios/RecepcionAlmacen.aspx.vb
+++ b/Inventarios/RecepcionAlmacen.aspx.vb
@@ -1264,11 +1264,19 @@ Partial Class Inventarios_RecepcionAlmacen
If CBool(e.Row.DBCampo("AplicaSeccion")) Then
e.Row.FCDropDownList("DdlSeccionAlmacen").Visible = True
If DdlAlmacen.SelectedValue.ToEntero > 0 Then
- e.Row.FCDropDownList("DdlSeccionAlmacen").DataSource = GlobalDTInvPSSeccionesAlmacen(UsuarioActual.CveEmpresa, DdlAlmacen.SelectedValue.ToEntero, e.Row.DBCampo("CvePS").ToEntero)
+ Dim dtsec As DataTable = GlobalDTInvPSSeccionesAlmacen(UsuarioActual.CveEmpresa, DdlAlmacen.SelectedValue.ToEntero, e.Row.DBCampo("CvePS").ToEntero)
+ e.Row.FCDropDownList("DdlSeccionAlmacen").DataSource = dtsec
e.Row.FCDropDownList("DdlSeccionAlmacen").DataBind()
+ If dtsec.Rows.Count = 1 Then
+ e.Row.FCDropDownList("DdlSeccionAlmacen").SelectedIndex = 0
+ e.Row.FCDropDownList("DdlSeccionAlmacen").Enabled = False
+ End If
+
e.Row.FCDropDownList("DdlSeccionAlmacen").Items.Insert(0, New ListItem("Seleccione", "-1"))
- End If
- e.Row.FCTextBox("TxtDividir").Visible = True
+
+ dtsec.Dispose()
+ End If
+ e.Row.FCTextBox("TxtDividir").Visible = True
Else
e.Row.FCDropDownList("DdlSeccionAlmacen").Visible = False
diff --git a/Inventarios/RecepcionUsados.aspx.vb b/Inventarios/RecepcionUsados.aspx.vb
index e5b6eb401..52bc3b4d5 100644
--- a/Inventarios/RecepcionUsados.aspx.vb
+++ b/Inventarios/RecepcionUsados.aspx.vb
@@ -460,6 +460,7 @@ Partial Class Inventarios_RecepcionUsados
dt.Columns.Add("CveAF")
dt.Columns.Add("Serie", Type.GetType("System.String"))
dt.Columns.Add("Lote", Type.GetType("System.String"))
+ dt.Columns.Add("FechaCaducidad", Type.GetType("System.DateTime"))
dt.Columns.Add("Observaciones")
dt.Columns.Add("CountMovimientoEntradaDetalle")
@@ -995,6 +996,7 @@ Partial Class Inventarios_RecepcionUsados
DtMovimientos.Rows(IndexDTUsado)("Estatus") = ""
DtMovimientos.Rows(IndexDTUsado)("CveSeccionAlmacen") = CveSeccionAlmacen
DtMovimientos.Rows(IndexDTUsado)("SeccionAlmacen") = SeccionAlmacen
+ DtMovimientos.Rows(IndexDTUsado)("FechaCaducidad") = "1900/01/01"
DtMovimientos.Rows(IndexDTUsado)("CodigoAF") = CodigoAF
diff --git a/Inventarios/ResguardoMaterial.aspx b/Inventarios/ResguardoMaterial.aspx
index a543fe7b5..688c514df 100644
--- a/Inventarios/ResguardoMaterial.aspx
+++ b/Inventarios/ResguardoMaterial.aspx
@@ -205,10 +205,13 @@
#
Cant
-
Clasificación
+
Clasificación
Producto
U.M.
-
Serie
+
Sección almacén
+
Serie
+
Lote
+
Caducidad
Observaciones
@@ -238,8 +241,19 @@
+
+
+
+
+
-
+
+
+
+
+
+
+
@@ -263,19 +277,24 @@
-
+
-
+
+
+
+
-
+ <%--
ss
-
+ --%>
diff --git a/Inventarios/ResguardoMaterial.aspx.vb b/Inventarios/ResguardoMaterial.aspx.vb
index debb185dc..621037f48 100644
--- a/Inventarios/ResguardoMaterial.aspx.vb
+++ b/Inventarios/ResguardoMaterial.aspx.vb
@@ -183,11 +183,16 @@ Partial Class Inventarios_ResguardoMaterial
dt.Columns.Add("PS")
dt.Columns.Add("Estatus")
dt.Columns.Add("Codigo")
+ dt.Columns.Add("SeccionAlmacen")
dt.Columns.Add("Serie")
+ dt.Columns.Add("Lote")
+ dt.Columns.Add("FechaCaducidad", Type.GetType("System.DateTime"))
+ dt.Columns.Add("CveSeccionAlmacen", Type.GetType("System.Int32"))
dt.Columns.Add("Observaciones")
dt.Columns.Add("CvePersonal", Type.GetType("System.Int32"))
dt.Columns.Add("Checado", Type.GetType("System.Boolean"))
+
DtMovimientos = dt
CargaGvM()
@@ -272,14 +277,17 @@ Partial Class Inventarios_ResguardoMaterial
DdlAlmacenDestinoLiberacion.DataBind()
DdlAlmacenDestinoLiberacion.Items.Insert(0, New ListItem("Seleccione", "-1"))
+ DdlSeccionAlmacen.DataSource = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa, -1)
+ DdlSeccionAlmacen.DataBind()
+
CargaPS()
End Sub
Private Sub CargaPS()
DdlProducto2.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1")
If DdlProducto2.UsaWebService Then
- DdlProducto2.ddlWS.Attributes.Add("data-pagina", "Inventarios")
- DdlProducto2.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue.ToString)
+ 'DdlProducto2.ddlWS.Attributes.Add("data-pagina", "Inventarios")
+ 'DdlProducto2.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue.ToString)
End If
If Not DdlProducto2.UsaWebService AndAlso CType(DdlProducto2.DataSource, DataTable) Is Nothing Then
DdlProducto2.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa)
@@ -329,11 +337,34 @@ Partial Class Inventarios_ResguardoMaterial
End Sub
Private Sub VerificaProducto()
If DdlProducto2.SelectedValue.ToEntero > 0 Then
- If GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlProducto2.SelectedValue.ToEntero).FiltraParametros("Inv_CveMetodoInventario = 5", "PS").Rows.Count > 0 Then
- ThSerie.Visible = True
- TrSerie.Visible = True
- TxtnSerie.Visible = True
- GvM.Columns(4).Visible = True
+ Dim drp As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlProducto2.SelectedValue.ToEntero).FiltroPrimero("")
+
+ If drp IsNot Nothing Then
+ 'activa Serie
+ If CBool(drp("AplicaSerie")) Then
+ ThSerie.Visible = True
+ TrSerie.Visible = True
+ TxtnSerie.Visible = True
+ End If
+
+ 'activa seccion
+ If CBool(drp("AplicaSeccion")) Then
+ ThSeccion.Visible = True
+ TrSeccion.Visible = True
+ End If
+ 'activa lote
+ If CBool(drp("AplicaLote")) Then
+ ThLote.Visible = True
+ TrLote.Visible = True
+ 'TxtLote.Visible = True
+ End If
+ 'activa caducidad
+ If CBool(drp("AplicaCaducidad")) Then
+ ThCaducidad.Visible = True
+ TrCaducidad.Visible = True
+ 'TxtCaducidad.Visible = True
+ End If
+
Else
TxtnSerie.Visible = False
End If
@@ -414,11 +445,15 @@ Partial Class Inventarios_ResguardoMaterial
registro.Item("CvePS") = PSSelected
registro.Item("PS") = DdlProducto2.SelectedText
registro.Item("Estatus") = ""
+ registro.Item("SeccionAlmacen") = If(DdlSeccionAlmacen.SelectedValue.ToEntero > 0, DdlSeccionAlmacen.SelectedItem.Text, "")
registro.Item("Serie") = TxtnSerie.Text
+ registro.Item("Lote") = If(TxtLote.Text = "", "-1", TxtLote.Text)
+ registro.Item("FechaCaducidad") = If(TxtCaducidad.Text = "", MinFecha.ToString, TxtCaducidad.Text)
+ registro.Item("CveSeccionAlmacen") = If(DdlSeccionAlmacen.SelectedValue.ToEntero > 0, DdlSeccionAlmacen.SelectedValue.ToEntero, -1)
registro.Item("Observaciones") = TxtObservacionesdetalle.Text
DtMovimientos.Rows.Add(registro)
CargaGvM()
-
+ UPDatos.Update()
txtCantidad.Text = ""
txtCantidad.Focus()
@@ -436,18 +471,48 @@ Partial Class Inventarios_ResguardoMaterial
#Region " GvM "
Private Sub CargaGvM()
- ThSerie.Visible = False
- TrSerie.Visible = False
- TxtnSerie.Visible = False
- GvM.Columns(4).Visible = False
- For Each Dr As DataRow In DtMovimientos.Rows
- If Dr("Serie").ToString <> "" Then
- ThSerie.Visible = True
- TrSerie.Visible = True
- GvM.Columns(4).Visible = True
- Exit For
- End If
- Next
+ If DtMovimientos IsNot Nothing Then
+ GvM.Columns(4).Visible = DtMovimientos.MAX("CveSeccionAlmacen").ToString.ToEntero > 0
+ GvM.Columns(5).Visible = DtMovimientos.MAX("Serie").ToString <> ""
+ GvM.Columns(6).Visible = DtMovimientos.MAX("Lote").ToString <> ""
+ GvM.Columns(7).Visible = DtMovimientos.MAX("FechaCaducidad").ToString.ToDate > MinFecha
+ End If
+
+
+ 'ThSerie.Visible = False
+ 'TrSerie.Visible = False
+ 'TxtnSerie.Visible = False
+ 'GvM.Columns(5).Visible = False
+ 'GvM.Columns(4).Visible = False
+
+ 'Dim Contador As Integer = 0
+ 'Dim UltimoRenglon As Integer = DtMovimientos.Rows.Count - 1
+ 'Dim MostrarSerie As Boolean = False
+ 'Dim MostrarSeccion As Boolean = False
+ 'While Contador <= UltimoRenglon And (Not MostrarSerie And Not MostrarSeccion)
+ ' Dim Dr As DataRow = DtMovimientos.Rows(Contador)
+ ' MostrarSerie = If(Not MostrarSerie, Dr("Serie").ToString <> "", True)
+ ' MostrarSeccion = If(Not MostrarSerie, Dr("SeccionAlmacen").ToString <> "", True)
+ ' Contador += 1
+ 'End While
+
+ 'ThSerie.Visible = MostrarSerie
+ 'TrSerie.Visible = MostrarSerie
+ 'GvM.Columns(5).Visible = MostrarSerie
+
+ 'GvM.Columns(4).Visible = MostrarSeccion
+
+ 'For Each Dr As DataRow In DtMovimientos.Rows
+ ' If Dr("Serie").ToString <> "" Then
+ ' ThSerie.Visible = True
+ ' TrSerie.Visible = True
+ ' GvM.Columns(5).Visible = True
+ ' Exit For
+ ' End If
+ ' If Dr("SeccionAlmacen").ToString <> "" Then
+ ' GvM.Columns(4).Visible = True
+ ' End If
+ 'Next
GvM.DataSource = DtMovimientos
GvM.DataBind()
@@ -460,6 +525,7 @@ Partial Class Inventarios_ResguardoMaterial
GvM.EditIndex = -1
CargaGvM()
+ UPDatos.Update()
End Sub
Protected Sub GvM_RowDataBound(sender As Object, e As GridViewRowEventArgs)
@@ -740,7 +806,9 @@ Partial Class Inventarios_ResguardoMaterial
Dim Cont As Integer = 0
For Each Dr As DataRow In DtMovimientos.Rows
- If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, -1, -1, Serie:=Dr("Serie").ToString, Observaciones:=Dr("Observaciones").ToString) Then
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0,
+ -1, CveSeccionAlmacen:=Dr("CveSeccionAlmacen").ToString.ToEntero, Serie:=Dr("Serie").ToString, Lote:=Dr("Lote").ToString,
+ FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, Observaciones:=Dr("Observaciones").ToString) Then
MensajeError = "Ocurrió un error al guardar los detalles del movimiento de salida. Por favor vuelva a intentar."
TieneError = True
Exit For
@@ -759,7 +827,9 @@ Partial Class Inventarios_ResguardoMaterial
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.ToDecimal, Dr("CveAF").ToString.ToEntero, -1, Serie:=Dr("Serie").ToString, Observaciones:=Dr("Observaciones").ToString) Then
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero,
+ Dr("PU").ToString.ToDecimal, Dr("CveAF").ToString.ToEntero, CveSeccionAlmacen:=Dr("CveSeccionAlmacen").ToString.ToEntero,
+ Serie:=Dr("Serie").ToString, Observaciones:=Dr("Observaciones").ToString) Then
TieneError = True
MensajeError = "Ocurrió un error al guardar los movimientos de entrada"
Exit For
diff --git a/Inventarios/TraspasoAlmacen.aspx.vb b/Inventarios/TraspasoAlmacen.aspx.vb
index 752c30d04..b7bfeeb5c 100644
--- a/Inventarios/TraspasoAlmacen.aspx.vb
+++ b/Inventarios/TraspasoAlmacen.aspx.vb
@@ -532,7 +532,7 @@ Partial Class Inventarios_TraspasoAlmacen
End If
Inv.Dispose()
- If Existencia - Cantidad - CantidadEnGrid < 0 ORELSE ExistenciaEspecificada - Cantidad - CantidadEnGrid < 0 Then
+ If Existencia - Cantidad - CantidadEnGrid < 0 OrElse ExistenciaEspecificada - Cantidad - CantidadEnGrid < 0 Then
If Existencia < 0 OrElse ExistenciaEspecificada < 0 Then
Alert("No hay existencia del producto", TipoMensaje.MsgAdvertencia)
RegistraScript("playsonidito(''142608__autistic-lucario__error.wav'')")
@@ -659,7 +659,7 @@ Partial Class Inventarios_TraspasoAlmacen
Dim CveSucursalOrigen = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", $"CveAlmacen = {DdlAlmacenOrigen.SelectedValue.ToEntero}")
Dim CveSucursalDestino = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", $"CveAlmacen = {DdlAlmacenDestino.SelectedValue.ToEntero}")
- If GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveTipoAlmacen", $"CveAlmacen = {DdlAlmacenDestino.SelectedValue.ToEntero}").ToEntero <> 21 Then 'NO SE VALIDA CUANDO EL TIPO DE ALMACEN DESTINO ES DE DEVOLUCION
+ If Not GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveTipoAlmacen", $"CveAlmacen = {DdlAlmacenDestino.SelectedValue.ToEntero}").Contiene("21", "26") Then 'NO SE VALIDA CUANDO EL TIPO DE ALMACEN DESTINO ES DE DEVOLUCION
If CveSucursalOrigen <> CveSucursalDestino Then
Alert("Por ser un traspaso entre sucursales es necesario indicar que el traspaso es transitorio.", TipoMensaje.MsgAdvertencia)
RegistraScript("playsonidito(''142608__autistic-lucario__error.wav'');", "SonidoError")
@@ -844,6 +844,9 @@ Partial Class Inventarios_TraspasoAlmacen
If Not ErrorMovInv Then
Dim TipoMovimientoEntrada = 27
AlmacenEntrada = If(ChkTransitorio.Checked, DdlAlmacenTransitorio.SelectedValue.ToEntero, DdlAlmacenDestino.SelectedValue.ToEntero)
+
+ Dim TipoAlmacenEntrada As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveTipoAlmacen", $"CveAlmacen = {AlmacenEntrada}").ToEntero()
+
CveMovimientoEntrada = ObjInventario.AddMovimiento(AlmacenEntrada, TipoMovimientoEntrada, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, -1, -1,
Observaciones:=TxtObservaciones.Text.Trim, Recibio:=If(ChkTransitorio.Checked, TxtResponsable.Text.Trim, "-1"),
CveAlmacenDestino:=If(ChkTransitorio.Checked, DdlAlmacenDestino.SelectedValue.ToEntero, -1), CveMovimientoRelacionado:=CveMovimientoSalida, Modulo:="TA/G3")
@@ -855,7 +858,8 @@ Partial Class Inventarios_TraspasoAlmacen
If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
Dim Cont As Integer = 0
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.ToDecimal, CveAF:=Dr("CveAF").ToString.ToEntero, CveSeccionAlmacen:=-1, Serie:=Dr("Serie").ToString, Lote:=Dr("Lote").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, Observaciones:=Dr("Observaciones").ToString) Then
+ Dim CostoEntrada As Decimal = If(TipoAlmacenEntrada = 26, 0, Dr("PU").ToString.ToDecimal())
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, CostoEntrada, CveAF:=Dr("CveAF").ToString.ToEntero, CveSeccionAlmacen:=-1, Serie:=Dr("Serie").ToString, Lote:=Dr("Lote").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, Observaciones:=Dr("Observaciones").ToString) Then
ErrorMovInv = True
TextoError = "Ocurrió un error al guardar los movimientos de entrada"
Exit For
@@ -1274,7 +1278,7 @@ Partial Class Inventarios_TraspasoAlmacen
Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
- If e.Row.DBCampo("EstatusExistencia").ToEntero <0 Then
+ If e.Row.DBCampo("EstatusExistencia").ToEntero < 0 Then
e.Row.Cells(0).BackColor = Drawing.Color.Red
End If
@@ -1718,8 +1722,12 @@ Partial Class Inventarios_TraspasoAlmacen
ObjInventario.IniciaTransacSQL() 'Inicia la transacción
Dim Fecha As Date = TxtFechaRecepcion.Text.ToDate
+ Dim CveAlmacenEntrada As Integer = GvDatosRecepcion.Rows(0).DataKey("CveAlmacenDestino").ToEntero
+
+ Dim TipoAlmacenDestino As Integer = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveTipoAlmacen", $"CveAlmacen = {CveAlmacenEntrada}").ToEntero()
+
'AGREGAMOS LA ENTRADA
- CveMovimientoSalida = ObjInventario.AddMovimiento(GvDatosRecepcion.Rows(0).DataKey("CveAlmacenDestino").ToEntero, 27, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1,
+ CveMovimientoSalida = ObjInventario.AddMovimiento(CveAlmacenEntrada, 27, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1,
Observaciones:=TxtObservacionesRecepcion.Text.Trim, CveAlmacenDestino:=GvDatosRecepcion.Rows(0).DataKey("CveAlmacenSalida").ToEntero, CveMovimientoRelacionado:=CveMovimientoSalida, Modulo:="TA/G1")
Folio = ObjInventario.Folio
@@ -1751,8 +1759,8 @@ Partial Class Inventarios_TraspasoAlmacen
TextoError = "Ocurrió un error al guardar los movimientos de salida"
Exit For
End If
-
- If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal, gvr.DataKey("CveUM").ToString.ToEntero, gvr.DataKey("CvePS").ToString.ToEntero, gvr.DataKey("PU").ToString.ToDecimal, CveAF:=gvr.DataKey("CveAF").ToString.ToEntero, CveSeccionAlmacen:=gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero, Serie:=gvr.DataKey("Serie").ToString, Lote:=gvr.DataKey("Lote").ToString, FechaCaducidad:=gvr.DataKey("FechaCaducidad").ToDate, CveMovimientoDetalleEntrada:=CveMovimientoDetalleEntrada) Then
+ Dim PrecioEntrada As Decimal = If(TipoAlmacenDestino = 26, 0, gvr.DataKey("PU").ToString.ToDecimal)
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal, gvr.DataKey("CveUM").ToString.ToEntero, gvr.DataKey("CvePS").ToString.ToEntero, PrecioEntrada, CveAF:=gvr.DataKey("CveAF").ToString.ToEntero, CveSeccionAlmacen:=gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero, Serie:=gvr.DataKey("Serie").ToString, Lote:=gvr.DataKey("Lote").ToString, FechaCaducidad:=gvr.DataKey("FechaCaducidad").ToDate, CveMovimientoDetalleEntrada:=CveMovimientoDetalleEntrada) Then
ErrorMovInv = True
TextoError = "Ocurrió un error al guardar los movimientos de salida"
Exit For
diff --git a/Ventas/ActualizarPrecios.aspx.vb b/Ventas/ActualizarPrecios.aspx.vb
index f170c6462..0bb9d3497 100644
--- a/Ventas/ActualizarPrecios.aspx.vb
+++ b/Ventas/ActualizarPrecios.aspx.vb
@@ -77,7 +77,7 @@ Partial Class Ventas_ActualizarPrecios
DdlPrecioLista.Items.Clear()
- If UsuarioActual.Empresa.Funcionalidad(404).ToString = "1" Then 'si manneja precios de lista
+ If UsuarioActual.Empresa.Funcionalidad(404).ToEntero > 0 Then 'si manneja precios de lista
Dim ObjVta As New ClsVentas
Dim primerItem As String = ""
If ObjVta.GetPrecioListas(UsuarioActual.CveEmpresa) Then
diff --git a/Ventas/Clientes.aspx b/Ventas/Clientes.aspx
index 376ee22cf..09ea53ad9 100644
--- a/Ventas/Clientes.aspx
+++ b/Ventas/Clientes.aspx
@@ -3776,9 +3776,6 @@
-
-
-
diff --git a/Ventas/Clientes.aspx.vb b/Ventas/Clientes.aspx.vb
index ff52d9a63..fa4738baa 100644
--- a/Ventas/Clientes.aspx.vb
+++ b/Ventas/Clientes.aspx.vb
@@ -6922,7 +6922,15 @@ Partial Class Clientes
Public Sub DownLoad_ClickDocumentacion(sender As Object, e As EventArgs)
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
Dim Adjunto As String = GvRow.DataKey("Adjunto")
- linkDescargaPagare = ModExtensiones.DirectorioBaseEmpresas & String.Format("Empresas\{0}\DocElectronica\Clientes\{1}\{2}", UsuarioActual.CveEmpresa, CveCliente, Adjunto)
+
+ Dim stringDescargaDocumento As String = ""
+ If GvRow.DataKey("Documentacion") = "Pagaré" AndAlso UsuarioActual.CveEmpresa = 140 Then
+ stringDescargaDocumento = ModExtensiones.DirectorioBaseEmpresas & String.Format("Empresas\{0}\Formatos\Pagaré.docx", UsuarioActual.CveEmpresa)
+ Else
+ stringDescargaDocumento = ModExtensiones.DirectorioBaseEmpresas & String.Format("Empresas\{0}\DocElectronica\Clientes\{1}\{2}", UsuarioActual.CveEmpresa, CveCliente, Adjunto)
+ End If
+ linkDescargaPagare = stringDescargaDocumento
+
TxtDireccionAval.Text = ""
TxtAval.Text = ""
RegistraScript("$('#ModalDivPagare').modal('show')")
@@ -6985,7 +6993,8 @@ Partial Class Clientes
Response.Buffer = True
memoryStream.WriteTo(Response.OutputStream)
Response.End()
-
+ memoryStream.Dispose()
+
End Sub
Protected Sub GvDocumentosFirma_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDocumentosCliente.RowDataBound
@@ -7053,14 +7062,13 @@ Partial Class Clientes
LnkDownLoadDoc.Visible = True
End If
- txtFechaLimite.Text = e.Row.DBCampo("FechaLimite").ToString.ToDate.ToString("dd/MM/yyyy")
+ txtFechaLimite.Text = e.Row.DBCampo("FechaLimite").ToString.ToDate.ToString("dd/MM/yyyy")
- If Adjunto.Trim.Length > 0 Then
+ If Adjunto.Trim.Length > 0 Or (Documentacion = "Pagaré" AndAlso UsuarioActual.CveEmpresa = 140) Then
Dim linkDescarga = "/Empresas/" & UsuarioActual.Empresa.CveEmpresa & "\DocElectronica\Clientes\" & CveCliente & "/" & Adjunto
Dim linkDescargaArchivo = UsuarioActual.Empresa.Ruta & "\DocElectronica\Clientes\" & CveCliente & "/" & Adjunto
-
- If File.Exists(linkDescargaArchivo) Then
+ If File.Exists(linkDescargaArchivo) Or (Documentacion = "Pagaré" AndAlso UsuarioActual.CveEmpresa = 140) Then
LnkDownLoadDoc.Visible = True
ScriptManager.GetCurrent(Me).RegisterPostBackControl(LnkDownLoadDoc)
diff --git a/Ventas/ProductosServicios.aspx b/Ventas/ProductosServicios.aspx
index 57658e998..36274682c 100644
--- a/Ventas/ProductosServicios.aspx
+++ b/Ventas/ProductosServicios.aspx
@@ -810,7 +810,7 @@
-
+
@@ -831,7 +831,7 @@
-
+
@@ -839,7 +839,7 @@
-
+
@@ -847,7 +847,7 @@
-
+
@@ -855,7 +855,7 @@
-
+
@@ -863,7 +863,7 @@
-
+
diff --git a/Ventas/ProductosServicios.aspx.vb b/Ventas/ProductosServicios.aspx.vb
index ba06b0a52..1d0dc5ca0 100644
--- a/Ventas/ProductosServicios.aspx.vb
+++ b/Ventas/ProductosServicios.aspx.vb
@@ -222,7 +222,7 @@ Partial Class ProductosyServicios
InicializaEcommerce()
- If UsuarioActual.CveEmpresa.Contiene(141) Then
+ If UsuarioActual.CveEmpresa.Contiene(141, 152) Then
'DivDatos.Attributes("class") = "col-md-12"
DivDdlTipo.Visible = True
@@ -1348,6 +1348,7 @@ Partial Class ProductosyServicios
GlobalDTImpuestosLocales(-1, UsuarioActual.CveEmpresa) = Nothing
GlobalDTProductosServiciosEquivalencias(-1, -1, UsuarioActual.CveEmpresa) = Nothing
GlobalDTPSAdicionales(-1, UsuarioActual.CveEmpresa) = Nothing
+ GlobalDTInvPSSeccionesAlmacen(UsuarioActual.CveEmpresa, -1, -1) = Nothing
'Dim ObjPS As New ClsProductosServicios
@@ -2635,4 +2636,29 @@ Partial Class ProductosyServicios
DdlCategoriaToxicidad.SelectedValueExist("000")
End Select
End Sub
+
+ Protected Sub ddlMetodos_SelectedIndexChanged(sender As Object, e As EventArgs)
+
+ If ddlMetodos.SelectedValue = "5" Then
+ ChkSerie.Checked = True
+ Else
+ ChkSerie.Checked = False
+ End If
+
+ End Sub
+
+ Protected Sub ChkSerie_CheckedChanged(sender As Object, e As EventArgs)
+
+ End Sub
+
+ Protected Sub ChkSeccion_CheckedChanged(sender As Object, e As EventArgs)
+
+ If ChkSeccion.Checked Then
+ DivSeccionAlmacen.Visible = True
+ Else
+ DivSeccionAlmacen.Visible = False
+ End If
+
+ UpSeccionAlmacen.Update()
+ End Sub
End Class
diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb
index 4928b7d97..3ed3f2224 100644
--- a/Ventas/Ventas.aspx.vb
+++ b/Ventas/Ventas.aspx.vb
@@ -4809,7 +4809,7 @@ Partial Class Ventas
End Sub
Private Sub CargaCliente(CveCliente As Integer, Optional Estatus As Integer = -1)
-
+ If CveCliente <= 0 Then Exit Sub
RBLPago.Items(0).Enabled = True
@@ -9010,7 +9010,7 @@ Partial Class Ventas
i += 1
Next
- Dim AplicaComercioExteriorSubProyecto As Boolean = If(GlobalDTSubProyectos(-1, Obj.CveSubProyecto)(0)("AplicaComercioExterior").ToString() = "True", True, False)
+ Dim AplicaComercioExteriorSubProyecto As Boolean = If(GlobalDTSubProyectos(-1, Obj.CveSubProyecto, CveEmpresa:=UsuarioActual.CveEmpresa)(0)("AplicaComercioExterior").ToString() = "True", True, False)
Timbre.Complementos.ComercioExterior11.AplicaComercioExteriorSubProyecto = AplicaComercioExteriorSubProyecto
If Obj.Cliente.AplicaComercioExterior And AplicaComercioExteriorSubProyecto Then
'DATOS GENERALES
@@ -9026,8 +9026,8 @@ Partial Class Ventas
'EMISOR
Dim Dr As DataRow
Dr = Nothing
- If GlobalDTSubProyectos(-1, DdlSubProyectoDatos.SelectedValue.ToEntero()).Rows.Count > 0 Then
- Dr = GlobalDTSubProyectos(-1, DdlSubProyectoDatos.SelectedValue.ToEntero())(0)
+ If GlobalDTSubProyectos(-1, DdlSubProyectoDatos.SelectedValue.ToEntero(), CveEmpresa:=UsuarioActual.CveEmpresa).Rows.Count > 0 Then
+ Dr = GlobalDTSubProyectos(-1, DdlSubProyectoDatos.SelectedValue.ToEntero(), CveEmpresa:=UsuarioActual.CveEmpresa)(0)
End If
Timbre.Complementos.ComercioExterior11.Emisor.CURP = UsuarioActual.Empresa.CURP
Timbre.Complementos.ComercioExterior11.Emisor.Calle = Dr("Calle").ToString()
@@ -13768,29 +13768,41 @@ Partial Class Ventas
ObjPS.Dispose()
End If
- If UsuarioActual.Empresa.Funcionalidad(404).ToString() = "1" Then
- Dim CvePrecioListaPS As Integer = GlobalDTSubProyectos(-1, CveSubProyecto:=DdlSubProyectoDatos.SelectedValue.ToEntero(), CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("CvePrecioLista", "").ToEntero()
+ If UsuarioActual.Empresa.Funcionalidad(404).ToEntero > 0 Then 'cuando el valor es 10.- secuencia Cliente/Sucursal, 20 - sucursal/cliente
+ Dim TipoPrecioLista As Integer = UsuarioActual.Empresa.Funcionalidad(404).ToEntero
+ ' si es 10. primero el cliente
+ Dim CvePrecioListaPS As Integer
+ Dim PorcentajePrecio As Double = 0
+
+ If TipoPrecioLista = 10 Then
+
+ CvePrecioListaPS = GlobalDTCliente(UsuarioActual.CveEmpresa, Estatus:=-1, CveCliente:=CveCliente).FiltroPrimeroValor("CvePrecioLista").ToEntero()
+ If CvePrecioListaPS <= 0 Then
+
+ CvePrecioListaPS = GlobalDTSubProyectos(-1, CveSubProyecto:=DdlSubProyectoDatos.SelectedValue.ToEntero(), CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("CvePrecioLista", "").ToEntero()
+
+ End If
+
+ Else
+
+ CvePrecioListaPS = GlobalDTSubProyectos(-1, CveSubProyecto:=DdlSubProyectoDatos.SelectedValue.ToEntero(), CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("CvePrecioLista", "").ToEntero()
+ If CvePrecioListaPS <= 0 Then
+
+ CvePrecioListaPS = GlobalDTCliente(UsuarioActual.CveEmpresa, Estatus:=-1, CveCliente:=CveCliente).FiltroPrimeroValor("CvePrecioLista").ToEntero()
+
+ End If
+
+ End If
+
If CvePrecioListaPS > 0 Then
Dim ObjPS As New ClsProductosServicios
If ObjPS.GetPSPreciosLista(UsuarioActual.CveEmpresa, CvePrecioListaPS, CvePS:=CvePSParametro) Then
PrecioSugerido = ObjPS.DtResultados.FiltroPrimeroValor("PrecioLista").ToDouble
+ PorcentajePrecio = ObjPS.DtResultados.FiltroPrimeroValor("Porcentaje").ToDouble
End If
ObjPS.Dispose()
End If
- Dim PorcentajePrecio As Double = 0
- If PrecioSugerido = 0 AndAlso CveCliente > 0 Then
- CvePrecioListaPS = GlobalDTCliente(UsuarioActual.CveEmpresa, Estatus:=-1, CveCliente:=CveCliente).FiltroPrimeroValor("CvePrecioLista").ToEntero()
- If CvePrecioListaPS > 0 Then
- Dim ObjPS As New ClsProductosServicios
- If ObjPS.GetPSPreciosLista(UsuarioActual.CveEmpresa, CvePrecioListaPS, CvePS:=CvePSParametro) Then
- PrecioSugerido = ObjPS.DtResultados.FiltroPrimeroValor("PrecioLista").ToDouble
- PorcentajePrecio = ObjPS.DtResultados.FiltroPrimeroValor("Porcentaje").ToDouble
- End If
- ObjPS.Dispose()
- End If
- End If
-
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(), CveTipoAlmacen:=1)
@@ -13801,7 +13813,7 @@ Partial Class Ventas
PrecioSugerido = ((PorcentajePrecio / 100) + 1) * CostoPS
End If
End If
-
+ CvePrecioLista = CvePrecioListaPS
End If
@@ -16074,6 +16086,8 @@ Partial Class Ventas
Dim DtMovimientosDetalles As DataTable
DtRemConceptosSurtidos = Nothing
+ Dim TieneMovimientosSinCosto As Boolean = False
+
'Obtenemos los movimientos detalle
If ObjInventario.GetInv_Mov(CveRemision, UsuarioActual.CveEmpresa) Then
@@ -16104,6 +16118,9 @@ Partial Class Ventas
'VALIDAR SI TIENE PRODUCTOS POR TRASPASAR
If DtMovimientos.Rows.Count > 0 Then
Dim GeneroMovimientoAlmacen As Boolean = False
+
+ TieneMovimientosSinCosto = DtMovimientosDetalles.COUNT("CveTipoAlmacen", "CveTipoAlmacen=26") > 0
+
For Each dr As DataRow In DtMovimientos.Rows
'Obtenemos los Movimientos de salida
If ObjInventario.GetMovimientos(dr("CveMovimiento").ToString().ToEntero(), ConceptoMovimiento, -1, UsuarioActual.CveEmpresa) Then
@@ -16120,9 +16137,14 @@ Partial Class Ventas
Dim MovDetalle As New DataTable
Dim AplicaMovimientoDetalleEntrada As Boolean = False
+
If RemisionesLista.Count > 0 Then
AplicaMovimientoDetalleEntrada = True
- MovDetalle = CuadrarFacturaMovimientos(DtMovimientosDetalles.FiltraParametros($"CveMovimiento = {dr("CveMovimiento")} AND (TieneSalidaxFactura IS NULL OR SaldoAlmacen > 0)"))
+ If TieneMovimientosSinCosto Then
+ MovDetalle = DtMovimientosDetalles.FiltraParametros($"CveMovimiento = {dr("CveMovimiento")}")
+ Else
+ MovDetalle = CuadrarFacturaMovimientos(DtMovimientosDetalles.FiltraParametros($"CveMovimiento = {dr("CveMovimiento")} AND (TieneSalidaxFactura IS NULL OR SaldoAlmacen > 0)"))
+ End If
Else
MovDetalle = DtMovimientosDetalles.FiltraParametros($"CveMovimiento = {dr("CveMovimiento")}")
End If
@@ -16197,7 +16219,10 @@ Partial Class Ventas
MovDetalle.Dispose()
- OcurrioError = Not GeneroMovimientoAlmacen
+ 'VERIFICA QUE SE HAYA GENERADO MOVIMIENTO DE ALMACEN
+ If Not OcurrioError Then
+ OcurrioError = Not GeneroMovimientoAlmacen
+ End If
End If
End If
@@ -17737,12 +17762,15 @@ Partial Class Ventas
DdlCuentaCheque.Items.Clear()
DdlCuentaTransferencia.Items.Clear()
+ Dim DtCC As DataTable = GlobalDTBancosCuentas(UsuarioActual.CveUsuario)
- DdlCuentaEfectivo.DataSource = GlobalDTBancosCuentas(UsuarioActual.CveUsuario).FiltraParametros(String.Format("CveMoneda = {0} AND CveTipoCuenta = 1", If(DdlMoneda.SelectedValue.ToEntero() <= 0, 1, DdlMoneda.SelectedValue.ToEntero())))
- DdlCuentaTarjetaCredito.DataSource = GlobalDTBancosCuentas(UsuarioActual.CveUsuario).FiltraParametros(String.Format("CveMoneda = {0} AND CveTipoCuenta <> 1", If(DdlMoneda.SelectedValue.ToEntero() <= 0, 1, DdlMoneda.SelectedValue.ToEntero())))
- DdlCuentaTarjetaDebito.DataSource = GlobalDTBancosCuentas(UsuarioActual.CveUsuario).FiltraParametros(String.Format("CveMoneda = {0} AND CveTipoCuenta <> 1", If(DdlMoneda.SelectedValue.ToEntero() <= 0, 1, DdlMoneda.SelectedValue.ToEntero())))
- DdlCuentaCheque.DataSource = GlobalDTBancosCuentas(UsuarioActual.CveUsuario).FiltraParametros(String.Format("CveMoneda = {0} AND CveTipoCuenta = 1", If(DdlMoneda.SelectedValue.ToEntero() <= 0, 1, DdlMoneda.SelectedValue.ToEntero())))
- DdlCuentaTransferencia.DataSource = GlobalDTBancosCuentas(UsuarioActual.CveUsuario).FiltraParametros(String.Format("CveMoneda = {0} AND CveTipoCuenta <> 1", If(DdlMoneda.SelectedValue.ToEntero() <= 0, 1, DdlMoneda.SelectedValue.ToEntero())))
+ DdlCuentaEfectivo.DataSource = DtCC.FiltraParametros(String.Format("CveMoneda = {0} AND CveTipoCuenta = 1", If(DdlMoneda.SelectedValue.ToEntero() <= 0, 1, DdlMoneda.SelectedValue.ToEntero())))
+ DdlCuentaTarjetaCredito.DataSource = DtCC.FiltraParametros(String.Format("CveMoneda = {0} AND CveTipoCuenta <> 1", If(DdlMoneda.SelectedValue.ToEntero() <= 0, 1, DdlMoneda.SelectedValue.ToEntero())))
+ DdlCuentaTarjetaDebito.DataSource = DtCC.FiltraParametros(String.Format("CveMoneda = {0} AND CveTipoCuenta <> 1", If(DdlMoneda.SelectedValue.ToEntero() <= 0, 1, DdlMoneda.SelectedValue.ToEntero())))
+ DdlCuentaCheque.DataSource = DtCC.FiltraParametros(String.Format("CveMoneda = {0} AND CveTipoCuenta = 1", If(DdlMoneda.SelectedValue.ToEntero() <= 0, 1, DdlMoneda.SelectedValue.ToEntero())))
+ DdlCuentaTransferencia.DataSource = DtCC.FiltraParametros(String.Format("CveMoneda = {0} AND CveTipoCuenta <> 1", If(DdlMoneda.SelectedValue.ToEntero() <= 0, 1, DdlMoneda.SelectedValue.ToEntero())))
+
+ DtCC.Dispose()
DdlCuentaEfectivo.DataBind()
DdlCuentaTarjetaCredito.DataBind()
diff --git a/asmx/WSApp.asmx b/asmx/WSApp.asmx
index 99eae2355..05cc6f529 100644
--- a/asmx/WSApp.asmx
+++ b/asmx/WSApp.asmx
@@ -30,18 +30,18 @@ Public Class WSApp
Return ConfigurationManager.AppSettings("UrlSitio").ToString
End Get
End Property
- ReadOnly Property GlobalDTPS(CveEmpresa As Integer, Optional CvePS As Integer = -1, Optional SATClavePS As String = "-1") As DataTable
- Get
- Dim ObjPS As New ClsProductosServicios
-
- If ObjPS.GetPS(CvePS, -1, CveEmpresa, SATClavePS:=SATClavePS) Then
- GlobalDTPS = ObjPS.DtResultados
- Else
- GlobalDTPS = Nothing
- End If
-
- ObjPS.Dispose()
- End Get
+ ReadOnly Property GlobalDTPS(CveEmpresa As Integer, Optional CvePS As Integer = -1, Optional SATClavePS As String = "-1", Optional AplicaParaVenta As Integer = -1, Optional Estatus As Integer = -1, Optional Codigo As String = "-1") As DataTable
+ Get
+ Dim ObjPS As New ClsProductosServicios
+
+ If ObjPS.GetPS(CvePS, -1, CveEmpresa, Codigo:=Codigo, SATClavePS:=SATClavePS, pAplicaParaVenta:=AplicaParaVenta, pEstado:=Estatus) Then
+ GlobalDTPS = ObjPS.DtResultados
+ Else
+ GlobalDTPS = Nothing
+ End If
+
+ ObjPS.Dispose()
+ End Get
End Property
Property GlobalDTMonedas() As DataTable
Get
@@ -66,41 +66,37 @@ Public Class WSApp
Set(value As DataTable)
Application("GlobalDTVtaFormaPago") = value
End Set
- End Property
- Public Property GlobalDTSubProyectos(CveProyecto As Integer, Optional CveSubProyecto As Integer = -1, Optional CveEmpresa As Integer = -1, Optional Estatus As Integer = 1) As DataTable
- Get
- Dim AppNombre As String = String.Format("GlobalDTSubProyectos{0}", CveEmpresa)
- 'sino existe, recarga los datos
- If DirectCast(Application(AppNombre), DataTable) Is Nothing Or (DirectCast(Application(AppNombre), DataTable) IsNot Nothing AndAlso DirectCast(Application(AppNombre), DataTable).Rows.Count = 0) Then
- Dim P As New ClsSubProyectos
- If P.GetSubProyectos(CveEmpresa:=CveEmpresa) Then Application(AppNombre) = P.DtResultados
- P.Dispose()
-
- Dim msg As String = "aqui no se carga subproyectos"
- msg.GuardaLog()
-
- End If
-
- If CveProyecto <> -1 OrElse CveSubProyecto <> -1 OrElse CveEmpresa <> -1 OrElse Estatus <> -1 Then
- Dim StrSQL As New StringBuilder
- If CveProyecto <> -1 Then StrSQL.AppendFormat(" AND CveProyecto = {0}", CveProyecto)
- If CveSubProyecto <> -1 Then StrSQL.AppendFormat(" AND CveSubProyecto = {0}", CveSubProyecto)
- If Estatus <> -1 Then StrSQL.AppendFormat(" AND CveEstatus = {0}", Estatus)
- If CveEmpresa <> -1 Then StrSQL.AppendFormat(" AND CveEmpresa = {0}", CveEmpresa)
-
- Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), StrSQL.ToString.Trim.TrimStart("A"c, "N"c, "D"c), "", DataViewRowState.CurrentRows)
- GlobalDTSubProyectos = Dv.ToTable
- Dv.Dispose()
-
- Else
- GlobalDTSubProyectos = DirectCast(Application(AppNombre), DataTable)
- End If
-
- End Get
- Set(ByVal value As DataTable)
- Dim AppNombre As String = String.Format("GlobalDTSubProyectos{0}", CveEmpresa)
- Application(AppNombre) = value
- End Set
+ End Property
+ Public Property GlobalDTSubProyectos(CveProyecto As Integer, Optional CveSubProyecto As Integer = -1, Optional CveEmpresa As Integer = -1, Optional Estatus As Integer = 1) As DataTable
+ Get
+ Dim AppNombre As String = String.Format("GlobalDTSubProyectos-{0}", CveEmpresa)
+ 'sino existe, recarga los datos
+ If DirectCast(Application(AppNombre), DataTable) Is Nothing Or (DirectCast(Application(AppNombre), DataTable) IsNot Nothing AndAlso DirectCast(Application(AppNombre), DataTable).Rows.Count = 0) Then
+ Dim P As New ClsSubProyectos
+ If P.GetSubProyectos(CveEmpresa:=CveEmpresa) Then Application(AppNombre) = P.DtResultados
+ P.Dispose()
+ End If
+
+ If CveProyecto <> -1 OrElse CveSubProyecto <> -1 OrElse CveEmpresa <> -1 OrElse Estatus <> -1 Then
+ Dim StrSQL As New StringBuilder
+ If CveProyecto <> -1 Then StrSQL.AppendFormat(" AND CveProyecto = {0}", CveProyecto)
+ If CveSubProyecto <> -1 Then StrSQL.AppendFormat(" AND CveSubProyecto = {0}", CveSubProyecto)
+ If Estatus <> -1 Then StrSQL.AppendFormat(" AND CveEstatus = {0}", Estatus)
+ If CveEmpresa <> -1 Then StrSQL.AppendFormat(" AND CveEmpresa = {0}", CveEmpresa)
+
+ Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), StrSQL.ToString.Trim.TrimStart("A"c, "N"c, "D"c), "", DataViewRowState.CurrentRows)
+ GlobalDTSubProyectos = Dv.ToTable
+ Dv.Dispose()
+
+ Else
+ GlobalDTSubProyectos = DirectCast(Application(AppNombre), DataTable)
+ End If
+
+ End Get
+ Set(ByVal value As DataTable)
+ Dim AppNombre As String = String.Format("GlobalDTSubProyectos-{0}", CveEmpresa)
+ Application(AppNombre) = value
+ End Set
End Property
Property GlobalDTSATUsosCFDI(Optional EsPersonaFisica As Integer = -1) As DataTable
Get
@@ -1238,9 +1234,7 @@ Public Class WSApp
Dim Row As DataRow = Nothing
Dim TotalCalculableImpuestos As Decimal = 0
- Dim DrPS As DataRow = Nothing
-
- DrPS = GlobalDTPS(CveEmpresa, CvePS:=PS.CvePS).FiltroPrimero("") ' Estado = -1
+ Dim DrPS As DataRow = GlobalDTPS(CveEmpresa, CvePS:=PS.CvePS).FiltroPrimero("") ' Estado = -1
If DrPS Is Nothing Then
Retorno.Mensajes.Add("Ocurrió un error al cargar la información del Producto. Por favor vuelva a intentar.")
diff --git a/vwd.webinfo b/vwd.webinfo
index c8632d677..baffb8c51 100644
--- a/vwd.webinfo
+++ b/vwd.webinfo
@@ -64,6 +64,10 @@
+
+
+
+