diff --git a/App_Code/ClsInventarios.vb b/App_Code/ClsInventarios.vb
index 74be2b92d..b8248e915 100644
--- a/App_Code/ClsInventarios.vb
+++ b/App_Code/ClsInventarios.vb
@@ -1240,7 +1240,14 @@ Public Class ClsInventarios
Return Retorno
End Function
-
+ '''
+ ''' Obtiene los valores para asignar a los movimientos virtuales
+ '''
+ ''' Debe ser un movimiento de Salida o Entrada de almacen (2,3,18)
+ '''
+ '''
+ ''' Cuando sea cancelacion/devolucion hay que mandar este dato que seria la salida de almacen
+ '''
Public Function GetMovimientosDetalleVirtual(CveMovimiento As Integer, CveEmpresa As Integer, Optional CveCompra As Integer = -1, Optional CveMovimientoRelacionado As Integer = -1) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_Inv_MovimientosDetalleVirtualGet")
diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb
index c0867da74..2cf57f886 100644
--- a/App_Code/Modelos.vb
+++ b/App_Code/Modelos.vb
@@ -4537,6 +4537,13 @@ Namespace Modelos
End If
End If
+
+ 'REALIZA LA DEVOLUCION AL ALMACEN VIRTUAL
+ If Not GeneraMovimientosVirtuales(CveVenta, CveMovimientoDevolucion, RowMovimiento("CveMovimiento").ToString().ToEntero(), ObjInventario) Then
+ ErrorCancelar = True
+ MensajeError = "Ocurrió un error al cargar los datos de devolución. Por favor vuelva a intentar."
+ End If
+
'AGREGA BITACORA A VENTA
If Not ErrorCancelar AndAlso RealizarDevolucionAlmacen AndAlso CveMovimientoDevolucion > 0 Then
Dim MensajeBitacora = "Devuelta"
@@ -4580,12 +4587,6 @@ Namespace Modelos
Next
End If
- 'REALIZA LA DEVOLUCION AL ALMACEN VIRTUAL
- If Not GeneraMovimientosVirtuales(CveVenta, ObjInventario) Then
- ErrorCancelar = True
- MensajeError = "Ocurrió un error al cargar los datos de devolución. Por favor vuelva a intentar."
- End If
-
'VERIFICAR MOVIMIENTOS DE APARTADOS
If Not ErrorCancelar Then
If Not GeneraMovimientosApartados(ObjInventario) Then
@@ -4809,41 +4810,36 @@ Namespace Modelos
Return Retorno
End Function
- Private Function GeneraMovimientosVirtuales(CveVenta As Integer, ByRef ObjInventario As ClsInventarios) As Boolean
+ Private Function GeneraMovimientosVirtuales(CveVenta As Integer, CveMovimiento As Integer, CveMovimientoRelacionado As Integer, ByRef ObjInventario As ClsInventarios) As Boolean
Dim ErrorCancelar As Boolean = False
Try
If UsuarioActual.Empresa.Funcionalidad(573) = "1" Then
- Dim CveMovimientoSalida As Integer = -1
- Dim CveAlmacenVirutal As Integer = -1
+ Dim CveMovimientoVirtual As Integer = -1
+ Dim ValidaVirtual = True
+ Dim DtPSVirtual As New DataTable("DtTamanios")
- Dim DtMovtosDev As DataTable = Nothing
-
- If ObjInventario.GetInv_Mov(CveVenta, UsuarioActual.CveEmpresa) Then
- Dim RowMovimiento As DataRow = ObjInventario.DtResultados.FiltroPrimero("CvePS IS NULL AND CveTipoAlmacen = 24 AND CveConcepto = 3 AND CveVenta > 0")
- CveMovimientoSalida = RowMovimiento("CveMovimiento").ToString().ToEntero()
- CveAlmacenVirutal = RowMovimiento("CveAlmacen").ToString().ToEntero()
- Else
- ErrorCancelar = True
+ If ObjInventario.GetMovimientosDetalleVirtual(CveMovimiento, UsuarioActual.CveEmpresa, CveMovimientoRelacionado:=CveMovimientoRelacionado) Then
+ DtPSVirtual = ObjInventario.DtResultados
End If
- If CveMovimientoSalida > 0 Then
- 'CARGA CONCEPTOS DEVUELTOS EN LA VENTA
- If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
- DtMovtosDev = ObjInventario.DtResultados.Copy()
- Else
- ErrorCancelar = True
- End If
+ Dim CveConceptoMovimientoVirtual As Integer = 36
+ Dim CveAlmacenVirtual As Integer = -1
+ Dim CveMovimientoRelacionadoVirtual As Integer = CveMovimiento
- If DtMovtosDev IsNot Nothing AndAlso DtMovtosDev.Rows.Count > 0 Then
- Dim CveMovimientoEntrada = ObjInventario.AddMovimiento(CveAlmacenVirutal, 18, 1, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVenta, -1, -1, CveMovimientoRelacionado:=CveMovimientoSalida)
+ CveAlmacenVirtual = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 24).FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto={CveSubProyecto}").ToEntero()
- For Each RowUsado As DataRow In DtMovtosDev.Rows
+ If DtPSVirtual IsNot Nothing AndAlso DtPSVirtual.Rows.Count > 0 AndAlso CveAlmacenVirtual > 0 AndAlso CveConceptoMovimientoVirtual > 0 Then
+ CveMovimientoVirtual = ObjInventario.AddMovimiento(CveAlmacenVirtual, CveConceptoMovimientoVirtual, 1, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVenta, -1, -1,
+ Observaciones:="", Guia:="", CveMovimientoRelacionado:=CveMovimientoRelacionadoVirtual, Modulo:="Modelos/CancelarVirtual")
+
+ If CveMovimientoVirtual > 0 Then
+ For Each RowUsado As DataRow In DtPSVirtual.Rows
Dim CvePS = RowUsado("CvePS").ToString().ToEntero()
Dim CantidadUsado As Double = RowUsado("Cantidad").ToString().ToDouble()
- Dim PU As Decimal = RowUsado("PU").ToString().ToDecimal()
+ Dim PU As Decimal = RowUsado("PUOriginal").ToString().ToDecimal()
Dim CveUM As Integer = RowUsado("CveUM").ToString().ToEntero()
- If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, CantidadUsado, CveUM, CvePS, PU, -1, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoVirtual, CantidadUsado, CveUM, CvePS, PU, -1) Then
ErrorCancelar = True
Exit For
End If
@@ -4851,7 +4847,14 @@ Namespace Modelos
Else
ErrorCancelar = True
End If
+ Else
+ If ValidaVirtual Then
+ ErrorCancelar = True
+ End If
+ End If
+ If DtPSVirtual.Rows.Count = 0 AndAlso ValidaVirtual = True Then
+ ErrorCancelar = True
End If
End If
Catch ex As Exception
@@ -4861,6 +4864,7 @@ Namespace Modelos
Return Not ErrorCancelar
End Function
+
Private Function GeneraMovimientosEntregaPorAdelantadoRemision(CveMovimiento As Integer, ByRef ObjVentas As ClsVentas, ByRef ObjInventario As ClsInventarios, ByRef DtDevRem As DataTable, ByRef ListaRemisionesCancelar As List(Of Integer)) As Boolean
Dim ErrorCancelar As Boolean = False
diff --git a/CRM/CatEmpresasCRM.aspx b/CRM/CatEmpresasCRM.aspx
index 7095cee60..c4391eec7 100644
--- a/CRM/CatEmpresasCRM.aspx
+++ b/CRM/CatEmpresasCRM.aspx
@@ -28,6 +28,11 @@
+
+
+
+
+
diff --git a/CRM/CatEmpresasCRM.aspx.cs b/CRM/CatEmpresasCRM.aspx.cs
index ad32655d5..9f8de821c 100644
--- a/CRM/CatEmpresasCRM.aspx.cs
+++ b/CRM/CatEmpresasCRM.aspx.cs
@@ -29,6 +29,7 @@ public partial class CRM_CatEmpresasCRM : ClsPaginas
{
if (!IsPostBack)
{
+ CargaTipoProcesos();
CargaMediosCaptacion();
CargaDatos();
}
@@ -60,12 +61,22 @@ public partial class CRM_CatEmpresasCRM : ClsPaginas
if (ObjCRM.GetMedioCaptacion(UsuarioActual.CveEmpresa, 1))
{
- DdlMedioCaptacion.DataSource = ObjCRM.DtResultados;
+ DdlMedioCaptacion.DataSource = ObjCRM.DtResultados.FiltraParametros(String.Format("CveTipoProceso = {0}",DdlTipoProceso.SelectedValue));
DdlMedioCaptacion.DataBind();
- DdlMedioCaptacion.Items.Insert(0, new ListItem("Todos ", "-1"));
}
ObjCRM.Dispose();
}
+
+ protected void CargaTipoProcesos()
+ {
+ ClsCRM ObjCRM = new ClsCRM();
+
+ if (ObjCRM.GetTipoProceso(UsuarioActual.CveEmpresa))
+ {
+ DdlTipoProceso.DataSource = ObjCRM.DtResultados;
+ }
+ DdlTipoProceso.DataBind();
+ }
#endregion
#region "ACCIONES - GRIEDVIEW"
@@ -106,4 +117,11 @@ public partial class CRM_CatEmpresasCRM : ClsPaginas
}
}
#endregion
+
+ protected void DdlTipoProcesos_Change(Object sender, EventArgs e)
+ {
+ DdlMedioCaptacion.Items.Clear();
+ CargaMediosCaptacion();
+ UPFiltros.Update();
+ }
}
\ No newline at end of file
diff --git a/CRM/CatProbabilidadAcercamiento.aspx.cs b/CRM/CatProbabilidadAcercamiento.aspx.cs
index 00d6462c7..2997bba1e 100644
--- a/CRM/CatProbabilidadAcercamiento.aspx.cs
+++ b/CRM/CatProbabilidadAcercamiento.aspx.cs
@@ -254,6 +254,6 @@ public partial class CRM_CatProbabilidadAcercamiento : ClsPaginas
param.Add(new ReportParameter("UsuarioImprimio", UsuarioActual.Nombre));
param.Add(new ReportParameter("FechaImpresion", DateTime.Now.ToString()));
- ImprimirPDF("Empresas/Grales/Formatos/RepCatProbabilidadAcercamiento.rdlc", TmpDT, param, "Report Cat Etapas Proceso", formato);
+ ImprimirPDF("Empresas/Grales/Formatos/RepCatProbabilidadAcercamiento.rdlc", TmpDT, param, "Report Cat Probabilidad Acercamiento", formato);
}
}
\ No newline at end of file
diff --git a/CRM/EmpresaCRM.aspx b/CRM/EmpresaCRM.aspx
index a0c86e7ed..e136089ec 100644
--- a/CRM/EmpresaCRM.aspx
+++ b/CRM/EmpresaCRM.aspx
@@ -87,6 +87,11 @@
+
+
+
+
+
diff --git a/CRM/EmpresaCRM.aspx.cs b/CRM/EmpresaCRM.aspx.cs
index e99b406e2..1ecfcadff 100644
--- a/CRM/EmpresaCRM.aspx.cs
+++ b/CRM/EmpresaCRM.aspx.cs
@@ -225,6 +225,7 @@ public partial class CRM_EmpresaCRM : ClsPaginas
{
CreoCliente = false;
RecuperaCve();
+ CargaTipoProceso();
CargaMetodosCaptacion();
CargaVendedores();
CargaSucursales();
@@ -548,12 +549,22 @@ public partial class CRM_EmpresaCRM : ClsPaginas
CveContactoEditado = -1;
}
+ protected void CargaTipoProceso()
+ {
+ ClsCRM ObjCRM = new ClsCRM();
+ if (ObjCRM.GetTipoProceso(UsuarioActual.CveEmpresa))
+ {
+ DdlTipoPrceso2.DataSource = ObjCRM.DtResultados;
+ }
+ DdlTipoPrceso2.DataBind();
+ }
+
protected void CargaMetodosCaptacion()
{
ClsCRM ObjCRM = new ClsCRM();
if (ObjCRM.GetMedioCaptacion(UsuarioActual.CveEmpresa, 1))
{
- DdlMedioCaptacion.DataSource = ObjCRM.DtResultados;
+ DdlMedioCaptacion.DataSource = ObjCRM.DtResultados.FiltraParametros(String.Format("CveTipoProceso = {0}", DdlTipoPrceso2.SelectedValue));
DdlMedioCaptacion.Items.Insert(0, new ListItem("Seleccione ", "-1"));
DdlMedioCaptacionAcercamiento.Items.Clear();
DdlMedioCaptacionAcercamiento.DataSource = ObjCRM.DtResultados;
@@ -1507,4 +1518,11 @@ public partial class CRM_EmpresaCRM : ClsPaginas
Mail.SendMail(ClsPaginas.EmpresaNotificaciones, correoVendedor, Asunto,body);
}
}
+
+ protected void DdlTipoProcesos_Change(Object sender, EventArgs e)
+ {
+ DdlMedioCaptacion.Items.Clear();
+ CargaMetodosCaptacion();
+ UpDatos.Update();
+ }
}
\ No newline at end of file
diff --git a/Compras/Compras.aspx b/Compras/Compras.aspx
index c138ed653..800a6922b 100644
--- a/Compras/Compras.aspx
+++ b/Compras/Compras.aspx
@@ -467,7 +467,7 @@
-
+
diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb
index a01f07765..8d1499581 100644
--- a/Compras/Compras.aspx.vb
+++ b/Compras/Compras.aspx.vb
@@ -6392,6 +6392,7 @@ Partial Class Compras_Compras
Case 6 'Compra
Dim AgregaMercanciaInventario As Boolean = UsuarioActual.CveEmpresa.Contiene(1, 72, 80, 119, 140, 141) AndAlso UsuarioActual.Empresa.UsaInventarios AndAlso Not UsuarioActual.Empresa.Funcionalidad(126) = "1"
+
Dim RegistraConcepto225 As Boolean = UsuarioActual.Empresa.UsaInventarios AndAlso DdlTipoComprobante.SelectedValue.Contiene("DEV") AndAlso Not UsuarioActual.Empresa.Funcionalidad(126) = "1"
If RBLPago.SelectedValue.ToEntero = 4 Then
@@ -6622,6 +6623,13 @@ Partial Class Compras_Compras
'falta el registro de la NC cuando es
Dim RegistroCuentaPuente As Boolean = False
'NC CON PRODUCTOS - CUENTA PUENTE
+
+
+ If DdlTipoComprobante.SelectedValue = "NC" And DdlTipoCompra.SelectedValue.ToEntero = 9 Then
+ RegistraConcepto225 = True
+ End If
+
+
If RegistraConcepto225 Then
importeMovimiento = TmpDT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"), $"ISNULL(TipoAF,0) <> 2 And ISNULL(CveAlmacen,0) = 0 And ISNULL(AplicaCostoIndirecto,0) <> 1 And ISNULL(CveTipoPS,0) = 2").ToString.ToDecimal
@@ -6924,6 +6932,12 @@ Partial Class Compras_Compras
CveCuenta = CveCuentaProveedorAcreedores
Case 18 'NC - Notas de Credito
+
+
+
+
+
+
importeMovimiento = importeNC
importeMN = importeMovimiento * tipoCambioActual * Multiplicador
If tipoCambioActual > 1 Then Concepto += $" TC{tipoCambioActual} ${importeMovimiento.FormatoNumero(2)}"
@@ -11511,7 +11525,7 @@ Partial Class Compras_Compras
e.Row.FCCheckBox("cbInv").Enabled = False
End If
- e.Row.FCDropDownList("ddlEAlmacen").DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros("CveTipoAlmacen IN (1,2,7,14,19)") 'GlobalDTAlmacen(UsuarioActual.CveEmpresa)
+ e.Row.FCDropDownList("ddlEAlmacen").DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros(If(DdlTipoCompra.SelectedValue.ToEntero = 9, "CveTipoAlmacen IN (21)", "CveTipoAlmacen IN (1,2,7,14,19)")) 'GlobalDTAlmacen(UsuarioActual.CveEmpresa)
e.Row.FCDropDownList("ddlEAlmacen").Items.Insert(0, New ListItem("Seleccione", "-1"))
e.Row.FCDropDownList("ddlEAlmacen").DataBind()
'e.Row.FCDropDownList("ddlEAlmacen").SelectedValue = If(e.Row.DBCampo("CveAlmacen").ToEntero <= 0, "-1", e.Row.DBCampo("CveAlmacen"))
@@ -11600,6 +11614,12 @@ Partial Class Compras_Compras
If UsuarioActual.CveUsuario.Contiene(1397, 1517, 1565) Then ' iliana, horacio, marco, RMF. 2017.03.13
StrAlmacenes = "CveTipoAlmacen IN (1,2,7,14,12,19)"
End If
+
+
+ If DdlTipoCompra.SelectedValue.ToEntero = 9 Then
+ StrAlmacenes = "CveTipoAlmacen IN (21)"
+ End If
+
e.Row.FCDropDownList("ddlAlmacen").DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros(StrAlmacenes) 'GlobalDTAlmacen(UsuarioActual.CveEmpresa)
e.Row.FCDropDownList("ddlAlmacen").Items.Insert(0, New ListItem("Seleccione", "-1"))
e.Row.FCDropDownList("ddlAlmacen").DataBind()
@@ -19621,6 +19641,10 @@ Partial Class Compras_Compras
Protected Sub DdlTipoCompra_SelectedIndexChanged(sender As Object, e As EventArgs)
+ If DdlTipoCompra.SelectedValue.ToEntero = 9 Then 'Al seleccionar apoyo logístico se cargan los amancenes de devoculcion proveedor para dar entrada
+ CargaGvInv()
+ End If
+
End Sub
#End Region
diff --git a/Empresas/Grales/Formatos/RepCatEtapasProceso.rdlc b/Empresas/Grales/Formatos/RepCatEtapasProceso.rdlc
index c20511759..8ca6204c4 100644
--- a/Empresas/Grales/Formatos/RepCatEtapasProceso.rdlc
+++ b/Empresas/Grales/Formatos/RepCatEtapasProceso.rdlc
@@ -471,7 +471,9 @@
-
+
Orden
@@ -961,13 +963,16 @@
- =Parameters!FechaImpresion.Value
+ =Now
-
+
Textbox11
@@ -1117,9 +1122,8 @@
ReportParameter1
- String
+ DateTimetrue
- trueReportParameter1
diff --git a/Empresas/Grales/Formatos/RepCatProbabilidadAcercamiento.rdlc b/Empresas/Grales/Formatos/RepCatProbabilidadAcercamiento.rdlc
index fb6193ac7..3fd92c938 100644
--- a/Empresas/Grales/Formatos/RepCatProbabilidadAcercamiento.rdlc
+++ b/Empresas/Grales/Formatos/RepCatProbabilidadAcercamiento.rdlc
@@ -5,7 +5,7 @@
0.08792cm0cm
- 20.06868cm
+ 19.15246cm
@@ -16,19 +16,19 @@
- 5.89659cm
+ 7.3197cm
+
+
+ 4.7613cm1.60341cm
- 3.72586cm
+ 2.55502cm
- 4.01284cm
-
-
- 4.7613cm
+ 2.80719cm
@@ -82,6 +82,53 @@
+
+
+
+ true
+ true
+
+
+
+
+ Tipo Proceso
+
+
+
+
+
+
+ Textbox4
+
+
+
+ Black
+
+
+ Black
+
+
+
+
+
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
@@ -223,53 +270,6 @@
-
-
-
- true
- true
-
-
-
-
- Tipo Proceso
-
-
-
-
-
-
- Textbox21
-
-
-
- Black
-
-
- Black
-
-
-
-
-
-
-
- 2pt
- 2pt
- 2pt
- 2pt
-
-
-
-
@@ -306,6 +306,37 @@
+
+
+
+ true
+ true
+
+
+
+
+ =Fields!TipoProceso.Value
+
+
+
+
+
+
+ TipoProceso
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
@@ -402,37 +433,6 @@
-
-
-
- true
- true
-
-
-
-
- =Fields!TipoProceso.Value
-
-
-
-
-
-
- TipoProceso
-
-
- 2pt
- 2pt
- 2pt
- 2pt
-
-
-
-
@@ -457,10 +457,10 @@
DataSet1
- 0.36336cm
- 0.06868cm
+ 0.26431cm
+ 0.10583cm1.06771cm
- 20cm
+ 19.04663cm1
- 0.79374cm
+ 0.87322cmtruetrue
@@ -607,7 +607,7 @@
0.11437cm0.10583cm0cm
- 19.96285cm
+ 19.04663cm
@@ -696,9 +696,9 @@
Textbox100.22726cm
- 6.97591cm
+ 7.92841cm0.36335cm
- 2.92333cm
+ 3.55833cm3
-
- true
- true
-
-
-
-
- =Parameters!FechaImpresion.Value
-
-
-
-
-
-
- Textbox11
- 0.22726cm
- 9.88513cm
- 0.36335cm
- 4.32745cm
- 4
-
-
- 2pt
- 2pt
- 2pt
- 2pt
-
- truetrue
@@ -763,9 +731,44 @@
Textbox30.22726cm
- 18.00281cm
+ 16.91135cm0.36335cm2.06587cm
+ 4
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ =Now
+
+
+
+
+
+
+ Textbox8
+ 0.22726cm
+ 10.62431cm
+ 0.37041cm
+ 5.72096cm5
diff --git a/Empresas/Grales/Formatos/TareaDetalle.rdlc b/Empresas/Grales/Formatos/TareaDetalle.rdlc
new file mode 100644
index 000000000..6463f7438
--- /dev/null
+++ b/Empresas/Grales/Formatos/TareaDetalle.rdlc
@@ -0,0 +1,1144 @@
+
+
+
+
+
+ true
+ true
+
+
+
+
+ Asunto:
+
+
+
+
+
+
+ Textbox2
+ 0.28787cm
+ 0.28787cm
+ 0.67938cm
+ 4.00812cm
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ =Parameters!Asunto.Value
+
+
+
+
+
+
+ Asunto
+ 0.28787cm
+ 4.40182cm
+ 0.67938cm
+ 11.64866cm
+ 1
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ Descripción:
+
+
+
+
+
+
+ Textbox2
+ 1.14198cm
+ 0.28787cm
+ 0.67938cm
+ 4.00812cm
+ 2
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ =Parameters!Descripcion.Value
+
+
+
+
+
+
+ Descripcion
+ 1.14198cm
+ 4.40182cm
+ 0.67938cm
+ 11.64866cm
+ 3
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ De
+
+
+
+
+
+
+ Textbox2
+ 2.30614cm
+ 0.28787cm
+ 0.67938cm
+ 2.42062cm
+ 4
+
+
+ #e0e0e0
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ C.C. Para
+
+
+
+
+
+
+ Textbox2
+ 3.80954cm
+ 0.28787cm
+ 0.67938cm
+ 2.42062cm
+ 5
+
+
+ #e0e0e0
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ Para:
+
+
+
+
+
+
+ Textbox2
+ 3.05608cm
+ 0.28787cm
+ 0.67938cm
+ 2.42062cm
+ 6
+
+
+ #e0e0e0
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ =Parameters!De.Value
+
+
+
+
+
+
+ Textbox11
+ 2.30614cm
+ 2.77905cm
+ 0.67938cm
+ 5.62208cm
+ 7
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ =Parameters!Para.Value
+
+
+
+
+
+
+ Textbox11
+ 3.05608cm
+ 2.77905cm
+ 0.67938cm
+ 5.62208cm
+ 8
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ =Parameters!CCPara.Value
+
+
+
+
+
+
+ Textbox11
+ 3.80954cm
+ 2.77905cm
+ 0.67938cm
+ 5.62208cm
+ 9
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ Fecha Inicio:
+
+
+
+
+
+
+ Textbox14
+ 2.30614cm
+ 8.54577cm
+ 0.6cm
+ 3.71708cm
+ 10
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ =Parameters!FechaInicio.Value
+
+
+
+
+
+
+ Textbox15
+ 2.94142cm
+ 8.54577cm
+ 0.6cm
+ 3.71708cm
+ 11
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ Fecha Fin:
+
+
+
+
+
+
+ Textbox14
+ 2.30614cm
+ 12.33341cm
+ 0.6cm
+ 3.71708cm
+ 12
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ =Parameters!FechaFin.Value
+
+
+
+
+
+
+ Textbox15
+ 2.94142cm
+ 12.33341cm
+ 0.6cm
+ 3.71708cm
+ 13
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ Prioridad:
+
+
+
+
+
+
+ Textbox18
+ 3.68254cm
+ 8.54577cm
+ 0.6cm
+ 3.71708cm
+ 14
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ =Parameters!Prioridad.Value
+
+
+
+
+
+
+ Textbox19
+ 4.28254cm
+ 8.54577cm
+ 0.6cm
+ 3.71708cm
+ 15
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ Tema:
+
+
+
+
+
+
+ Textbox18
+ 3.68254cm
+ 12.29813cm
+ 0.6cm
+ 3.71708cm
+ 16
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ =Parameters!Tema.Value
+
+
+
+
+
+
+ Textbox19
+ 4.30018cm
+ 12.29813cm
+ 0.6cm
+ 3.71708cm
+ 17
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ Estatus:
+
+
+
+
+
+
+ Textbox22
+ 5.39433cm
+ 0.28787cm
+ 0.75875cm
+ 2.5cm
+ 18
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ =Parameters!Estatus.Value
+
+
+
+
+
+
+ Estatus
+ 6.25891cm
+ 0.28787cm
+ 1.04979cm
+ 5.46333cm
+ 19
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ Fecha Registró:
+
+
+
+
+
+
+ Textbox24
+ 5.39433cm
+ 6.45266cm
+ 0.6cm
+ 2.79104cm
+ 20
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ =Parameters!FechaRegistro.Value
+
+
+
+
+
+
+ Textbox25
+ 6.10016cm
+ 6.45266cm
+ 0.6cm
+ 4.21979cm
+ 21
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ Registró:
+
+
+
+
+
+
+ Textbox26
+ 5.39433cm
+ 11.02995cm
+ 0.6cm
+ 2.5cm
+ 22
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ =Parameters!Registro.Value
+
+
+
+
+
+
+ Textbox27
+ 6.10016cm
+ 11.02995cm
+ 0.6cm
+ 4.98526cm
+ 23
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ 3.02083in
+
+
+ 6.31909in
+
+
+ 2.83104cm
+ true
+ true
+
+
+ External
+ =Parameters!Logo.Value
+ FitProportional
+ 0.26141cm
+ 0.28787cm
+ 2.05563cm
+ 2.84938cm
+
+
+
+
+
+ true
+ true
+
+
+
+
+ =Parameters!NombreEmpresa.Value
+
+
+
+
+
+
+ NombreEmpresa
+ 0.26141cm
+ 5.50016cm
+ 1.31438cm
+ 5.19875cm
+ 1
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ Detalle de Tarea
+
+
+
+
+
+
+ Textbox3
+ 2.03412cm
+ 5.50016cm
+ 0.6cm
+ 5.19875cm
+ 2
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+
+ 1.50812cm
+ true
+ true
+
+
+ true
+ true
+
+
+
+
+ Usuario Imprimio:
+
+
+
+
+
+
+ Textbox28
+ 0.28787cm
+ 0.28787cm
+ 0.49417cm
+ 2.84937cm
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ =Parameters!UsuarioImprimio.Value
+
+
+
+
+
+
+ UsuarioImprimio
+ 0.78203cm
+ 0.28787cm
+ 0.49417cm
+ 4.27271cm
+ 1
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ Fecha Impresión:
+
+
+
+
+
+
+ Textbox10
+ 0.28787cm
+ 5.55308cm
+ 0.49417cm
+ 3.55833cm
+ 2
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ =Now
+
+
+
+
+
+
+ Textbox8
+ 0.78203cm
+ 5.56366cm
+ 0.37041cm
+ 5.72096cm
+ 3
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+ true
+ true
+
+
+
+
+ ="Página " & Globals.PageNumber & " de " & Globals.TotalPages
+
+
+
+
+
+
+ Textbox3
+ 0.28787cm
+ 13.94934cm
+ 0.36335cm
+ 2.06587cm
+ 4
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ 29.7cm
+ 21cm
+ 2cm
+ 2cm
+ 2cm
+ 2cm
+ 0.13cm
+
+
+ 0
+
+
+ String
+ true
+ true
+ ReportParameter1
+
+
+ String
+ true
+ true
+ ReportParameter1
+
+
+ String
+ true
+ true
+ ReportParameter1
+
+
+ String
+ true
+ true
+ ReportParameter1
+
+
+ String
+ true
+ true
+ ReportParameter1
+
+
+ String
+ true
+ true
+ ReportParameter1
+
+
+ String
+ true
+ true
+ ReportParameter1
+
+
+ String
+ true
+ true
+ ReportParameter1
+
+
+ String
+ true
+ true
+ ReportParameter1
+
+
+ String
+ true
+ true
+ ReportParameter1
+
+
+ String
+ true
+ true
+ ReportParameter1
+
+
+ String
+ true
+ true
+ ReportParameter1
+
+
+ String
+ true
+ true
+ ReportParameter1
+
+
+ String
+ true
+ true
+ ReportParameter1
+
+
+ String
+ true
+ true
+ ReportParameter1
+
+
+ Cm
+ 90dfc914-a403-47e9-a032-4842fbb985b5
+
\ No newline at end of file
diff --git a/Inventarios/RecepcionAlmacen.aspx.vb b/Inventarios/RecepcionAlmacen.aspx.vb
index 91b612f15..4d96a52f1 100644
--- a/Inventarios/RecepcionAlmacen.aspx.vb
+++ b/Inventarios/RecepcionAlmacen.aspx.vb
@@ -30,7 +30,14 @@ Partial Class Inventarios_RecepcionAlmacen
End Property
Private Property DtInv As DataTable
Get
- Return CType(ViewState("DtInv"), DataTable)
+ If ViewState("DtInv") Is Nothing Then
+ Return New DataTable
+ Else
+ Return CType(ViewState("DtInv"), DataTable)
+ End If
+
+
+
End Get
Set(value As DataTable)
ViewState("DtInv") = value
@@ -854,9 +861,15 @@ Partial Class Inventarios_RecepcionAlmacen
If TipoMovimiento = 3 Then
CargaAlmacenes(-1, "21,2")
End If
+
+ If CveTipoCompra = 9 Then
+ CargaAlmacenes(-1, "21")
+ End If
+
RecibidaCompleta = False
Dim CargaSoloUsados As Boolean = False
+
If ObjInventario.RecepcionAlmacenGet(pCveCompra, BuscaEntregaDirecta, UsuarioActual.CveEmpresa) AndAlso ObjInventario.DtResultados.Rows.Count > 0 Then
Dim DtRecepcion As DataTable = Nothing
Dim NumUsados = ObjInventario.DtResultados.COUNT("EsUsado", "EsUsado = True").ToEntero()
@@ -2106,7 +2119,10 @@ Partial Class Inventarios_RecepcionAlmacen
End Function
Private Sub GuardaCompraOC()
+
Dim CveMovimiento As Integer
+ ' Dim CveMovimientoS
+
Dim InvFolio As String = ""
Dim FechaMovto As Date = TxtFecha.Text.ToDate
@@ -2402,7 +2418,9 @@ Partial Class Inventarios_RecepcionAlmacen
If DtPSVirtual IsNot Nothing AndAlso DtPSVirtual.Rows.Count > 0 Then
Dim CveSubProyecto As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", $"CveAlmacen= {DdlAlmacen.SelectedValue}").ToEntero()
- Dim CveAlmacenVirutal As Integer = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 24).FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto={CveSubProyecto}").ToEntero()
+ Dim CveTipoAlmacenFiltro As Integer = If(CveTipoCompra = 9, 25, 24)
+
+ Dim CveAlmacenVirutal As Integer = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoAlmacenFiltro).FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto={CveSubProyecto}").ToEntero()
CveMovimientoVirtual = ObjInventario.AddMovimiento(CveAlmacenVirutal, If(TipoMovimiento > 1, 13, 2), 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCompraSurtir, -1, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, Modulo:="RA/G")
FolioVirtual = ObjInventario.Folio
@@ -2494,6 +2512,76 @@ Partial Class Inventarios_RecepcionAlmacen
End If
End If
'TERMINA: DEVENGAR
+
+ Else
+
+
+
+ 'VIRTUAL
+ If CveTipoCompra = 9 And UsuarioActual.Empresa.Funcionalidad(573) = "1" Then
+
+ Dim DtPSVirtual As New DataTable("DtTamanios")
+ DtPSVirtual.Columns.Add(New DataColumn("CvePS", GetType(Integer)))
+ DtPSVirtual.Columns.Add(New DataColumn("Cantidad", GetType(Decimal)))
+ DtPSVirtual.Columns.Add(New DataColumn("PU", GetType(Decimal)))
+ DtPSVirtual.Columns.Add(New DataColumn("CveUM", GetType(Integer)))
+
+ Dim DtComprasDetalle As DataTable = Nothing
+ Dim DtTamanios As DataTable = Nothing
+
+ If ObjCompras.GetCompraDetalle(CveCompraSurtir) Then
+ DtComprasDetalle = ObjCompras.DtResultados.Copy()
+ End If
+
+ If ObjAcum.TamañoGet(-1, UsuarioActual.CveEmpresa) Then
+ DtTamanios = ObjAcum.DtResultados.Copy()
+ End If
+
+ For Each GvRow As GridViewRow In GvInv.Rows
+ If GvRow.RowType = DataControlRowType.DataRow Then
+
+ For Each Tam As DataRow In DtTamanios.Rows
+ If Tam("CveTamaño").ToString() = GvRow.DataKey("CveTamaño") Then
+ Dim CvePSCargo = Tam("CvePSCargo").ToString().ToEntero()
+ Dim RowCompraDetalle = DtComprasDetalle.FiltroPrimero($"CvePS = {CvePSCargo}")
+
+ If RowCompraDetalle IsNot Nothing Then
+ Dim Row As DataRow = DtPSVirtual.NewRow()
+ Row("CvePS") = CvePSCargo
+ Row("Cantidad") = GvRow.FCTextBox("TbCantidadF").Text.ToDecimal()
+ Row("PU") = RowCompraDetalle("PU").ToString().ToDecimal()
+ Row("CveUM") = GvRow.DataKey("CveUM").ToEntero()
+ DtPSVirtual.Rows.Add(Row)
+ End If
+
+ End If
+ Next
+
+ End If
+ Next
+
+ If DtPSVirtual IsNot Nothing AndAlso DtPSVirtual.Rows.Count > 0 Then
+ Dim CveSubProyecto As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", $"CveAlmacen= {DdlAlmacen.SelectedValue}").ToEntero()
+
+ Dim CveAlmacenVirutal As Integer = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 25).FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto={CveSubProyecto}").ToEntero()
+
+ CveMovimientoVirtual = ObjInventario.AddMovimiento(CveAlmacenVirutal, If(TipoMovimiento > 1, 13, 2), 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCompraSurtir, -1, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, Modulo:="RA/G")
+ FolioVirtual = ObjInventario.Folio
+
+ For Each RowUsado As DataRow In DtPSVirtual.Rows
+ Dim CvePS = RowUsado("CvePS").ToString().ToEntero()
+ Dim CantidadUsado As Double = RowUsado("Cantidad").ToString().ToDouble()
+ Dim PU As Decimal = RowUsado("PU").ToString().ToDecimal()
+ Dim CveUM As Integer = RowUsado("CveUM").ToString().ToEntero()
+
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoVirtual, CantidadUsado, CveUM, CvePS, PU, -1, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then
+ ErrorMovInv = True
+ Exit For
+ End If
+ Next
+ End If
+ End If
+
End If
'ACTUALIZA ESTATUS ALMACEN
diff --git a/Inventarios/RecepcionEntrega.aspx.vb b/Inventarios/RecepcionEntrega.aspx.vb
index 30413d05c..b838c9e68 100644
--- a/Inventarios/RecepcionEntrega.aspx.vb
+++ b/Inventarios/RecepcionEntrega.aspx.vb
@@ -2355,37 +2355,35 @@ Partial Class Inventarios_RecepcionEntrega
' COMIENZA: VIRTUAL
If Not ErrorMovInv AndAlso TipoDocto.Contiene("Ing", "Dev") AndAlso UsuarioActual.Empresa.Funcionalidad(573) = "1" AndAlso CveMovimiento > 0 Then
Dim DtPSVirtual As New DataTable("DtTamanios")
-
- If ObjInventario.GetMovimientosDetalleVirtual(CveMovimiento, UsuarioActual.CveEmpresa) Then
- DtPSVirtual = ObjInventario.DtResultados
- End If
-
- '
- 'DtPSVirtual.Columns.Add(New DataColumn("CvePS", GetType(Integer)))
- 'DtPSVirtual.Columns.Add(New DataColumn("Cantidad", GetType(Decimal)))
- 'DtPSVirtual.Columns.Add(New DataColumn("PU", GetType(Decimal)))
- 'DtPSVirtual.Columns.Add(New DataColumn("CveUM", GetType(Integer)))
-
- 'Dim DtTamanios As DataTable = Nothing
-
- 'If ObjAcumuladores.TamañoGet(-1, UsuarioActual.CveEmpresa) Then
- ' DtTamanios = ObjAcumuladores.DtResultados.Copy()
- 'End If
-
Dim CveConceptoMovimientoVirtual As Integer = -1
Dim CveAlmacenVirtual As Integer = -1
Dim CveMovimientoRelacionadoVirtual As Integer = CveMovimiento
Dim ValidaVirtual As Boolean = False
- CveAlmacenVirtual = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 24).FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto={CveSubProyecto}").ToEntero()
If TipoMovimiento = 1 Then
CveConceptoMovimientoVirtual = 37
+ If ObjInventario.GetMovimientosDetalleVirtual(CveMovimiento, UsuarioActual.CveEmpresa) Then
+ DtPSVirtual = ObjInventario.DtResultados
+ End If
+
ElseIf TipoMovimiento = 2 Then
ValidaVirtual = True
CveConceptoMovimientoVirtual = 36
+
+ If ObjInventario.GetInv_Mov(CveVentaSurtir, UsuarioActual.CveEmpresa) Then
+ Dim RowMovimiento As DataRow = ObjInventario.DtResultados.FiltroPrimero("CvePS IS NULL AND CveTipoAlmacen = 1 AND CveConcepto IN(3,40) AND CveVenta > 0")
+
+ If ObjInventario.GetMovimientosDetalleVirtual(CveMovimiento, UsuarioActual.CveEmpresa, CveMovimientoRelacionado:=RowMovimiento("CveMovimiento").ToString().ToEntero()) Then
+ DtPSVirtual = ObjInventario.DtResultados
+ End If
+ Else
+ ErrorMovInv = True
+ End If
End If
+ CveAlmacenVirtual = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 24).FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto={CveSubProyecto}").ToEntero()
+
If DtPSVirtual IsNot Nothing AndAlso DtPSVirtual.Rows.Count > 0 AndAlso CveAlmacenVirtual > 0 AndAlso CveConceptoMovimientoVirtual > 0 Then
CveMovimientoVirtual = ObjInventario.AddMovimiento(CveAlmacenVirtual, CveConceptoMovimientoVirtual, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1,
Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveMovimientoRelacionado:=CveMovimientoRelacionadoVirtual, Modulo:="RE/G6")
@@ -2395,7 +2393,7 @@ Partial Class Inventarios_RecepcionEntrega
For Each RowUsado As DataRow In DtPSVirtual.Rows
Dim CvePS = RowUsado("CvePS").ToString().ToEntero()
Dim CantidadUsado As Double = RowUsado("Cantidad").ToString().ToDouble()
- Dim PU As Decimal = RowUsado("PU").ToString().ToDecimal()
+ Dim PU As Decimal = RowUsado("PUOriginal").ToString().ToDecimal()
Dim CveUM As Integer = RowUsado("CveUM").ToString().ToEntero()
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoVirtual, CantidadUsado, CveUM, CvePS, PU, -1) Then
diff --git a/Inventarios/TraspasoAlmacen.aspx.vb b/Inventarios/TraspasoAlmacen.aspx.vb
index 0a27020c6..0a6073f34 100644
--- a/Inventarios/TraspasoAlmacen.aspx.vb
+++ b/Inventarios/TraspasoAlmacen.aspx.vb
@@ -665,105 +665,8 @@ Partial Class Inventarios_TraspasoAlmacen
End If
End If
- 'VALIDA ALMACEN DISTINTA SUCURSAL DEBE SER TRANSITORIO
- If Not UsuarioActual.CveEmpresa.Contiene(7, 140) Then '[IPP] EMPRESA VIGILANCIA NO OCUPA TRANSITORIOS - TIENEN MIL SUCURSALES Xd
- If Not ChkTransitorio.Checked Then
- 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 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")
- ChkTransitorio.Checked = True
- If ChkTransitorio.Checked Then RegistraScript("$('#DivTransitorio').show(200);", "MuestraDivTransitorio")
- Exit Sub
- End If
- End If
- End If
- End If
-
- 'VALIDA QUE TENGA MOVTOS
- If Not GvDatos.Rows.Count > 0 Then
- Alert("No hay movimientos para el traspaso", TipoMensaje.MsgAdvertencia)
- RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
- Exit Sub
- End If
-
- 'VALIDA ESTATUS EXISTENCIA
- For Each dr As DataRow In DtMovimientos.Rows
- If dr("EstatusExistencia").ToString = "-1" Then
- Alert("Tiene que rectificar los movimientos con error.", TipoMensaje.MsgError)
- If ChkTransitorio.Checked Then RegistraScript("$('#DivTransitorio').show(200);")
- Exit Sub
- End If
- Next
-
- Dim ObjInventario As New ClsInventarios
-
- 'VALIDA LA EXISTENCIA DEL ALMACEN DE ORIGEN
- Dim ErrorExistencia = False
- Dim TextoExistencia As StringBuilder = New StringBuilder
- Dim Existencia As Double
- TextoExistencia.Append("Los siguiente productos se ajustaron por falta de exitencia: ")
- If Not CargadoDeMov Then
-
- For Each dr As DataRow In DtMovimientos.Rows
- Existencia = ObjInventario.GetExistenciasPS(dr("CvePS").ToString.ToEntero, dr("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, DdlAlmacenOrigen.SelectedValue.ToEntero, FechaMovto:=TxtFecha.Text.ToDate.ToString("yyyy/MM/dd 23:59"), SerieLote:=If(dr("SerieLote").ToString = "", "-1", dr("SerieLote").ToString), PendientePorSurtir:=1)
- Existencia -= DtMovimientos.SUM("Cantidad", $"CvePS = {dr("CvePS").ToString.ToEntero} AND CveUM = {dr("CveUM").ToString.ToEntero} {If(dr("SerieLote").ToString <> "-1", $" AND SerieLote = '{dr("SerieLote").ToString}'", "")}")
- 'DtMovimientos.SUM("Cantidad", String.Format("CvePS = {0}", dr("CvePS").ToString.ToEntero))
-
- If Existencia < 0 Then
- ErrorExistencia = True
- dr("EstatusExistencia") = "-1"
- dr("Cantidad") = Existencia
- 'If Existencia <= 0 Then
- TextoExistencia.AppendFormat("- #{0} {1} ", dr("No").ToString, dr("PS").ToString)
- 'Else
- 'Alert(String.Format("Solo hay en existencia: {0}", Existencia), TipoMensaje.MsgError)
- 'End If
- End If
- Next
- Else
- For Each gvr As GridViewRow In GvDatos.Rows
- Existencia = ObjInventario.GetExistenciasPS(gvr.DataKey("CvePS").ToString.ToEntero, gvr.DataKey("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, DdlAlmacenOrigen.SelectedValue.ToEntero, FechaMovto:=TxtFecha.Text.ToDate.ToString("yyyy/MM/dd 23:59"), SerieLote:=If(gvr.DataKey("SerieLote").ToString = "", "-1", gvr.DataKey("SerieLote").ToString), PendientePorSurtir:=1)
- Existencia -= gvr.FCTextBox("TxtCantidad2").Text.ToEntero
- If Existencia < 0 Then
- ErrorExistencia = True
-
- gvr.FCTextBox("TxtCantidad2").Text = (Existencia + gvr.FCTextBox("TxtCantidad2").Text.ToEntero).ToString
- TextoExistencia.AppendFormat("- #{0} {1} ", gvr.DataKey("No").ToString, gvr.DataKey("PS").ToString)
- End If
- Next
- End If
-
- If ErrorExistencia Then
- Alert(TextoExistencia.ToString, TipoMensaje.MsgError)
- RegistraScript("playsonidito(''142608__autistic-lucario__error.wav'')")
- ObjInventario.Dispose()
- Exit Sub
- End If
-
- Dim TotalCantidad As Decimal = DtMovimientos.SUMD("Cantidad")
- If UsuarioActual.Empresa.Funcionalidad(563) = "1" Then
- If TotalCantidad <> DtSeccionAlmacen.FiltraParametros("TipoSeccionAlmacen = 1").SUMD("CantidadSeccionAlmacen") Then
- Alert("La seccion de almacen no ha sido agregada completamente.", TipoMensaje.MsgAdvertencia)
- Exit Sub
- End If
- End If
-
-
- Dim TipoAlmacenOrigen = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveTipoAlmacen", $"CveAlmacen = {DdlAlmacenOrigen.SelectedValue.ToEntero}").ToEntero
- Dim TipoAlmacenDestino = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveTipoAlmacen", $"CveAlmacen = {DdlAlmacenDestino.SelectedValue.ToEntero}").ToEntero
-
- ''[IPP-1Noviembre2018] SE COMENTA PORQUE NO TIENE NI PIES NI CABEZA. LE FALTA DESARROLLO
- 'If (TipoAlmacenOrigen = 14 Or TipoAlmacenDestino = 14) And TipoAlmacenOrigen <> TipoAlmacenDestino Then
- ' ObjInventario.Dispose()
- ' 'es consumo interno
- ' ConsumoInterno(TipoAlmacenOrigen, TipoAlmacenDestino)
- 'End If
-
'Inicia la transacción
+ Dim ObjInventario As New ClsInventarios
Dim ObjConta As New ClsContabilidad(ObjInventario.IniciaTransacSQL())
Dim CveMovimientoSalida = 0
Dim CveMovimientoEntrada = 0
@@ -781,188 +684,298 @@ Partial Class Inventarios_TraspasoAlmacen
Dim TextoError = ""
Dim TipoMovimientoSalida As Integer = 26 'If(ChkTransitorio.Checked, 26, If(TipoAlmacenOrigen = 24, 26, 26))
- 'AGREGAMOS LA SALIDA DEL ALMACEN ORIGEN
- CveMovimientoSalida = ObjInventario.AddMovimiento(DdlAlmacenOrigen.SelectedValue.ToEntero, TipoMovimientoSalida, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1,
+ Dim ErrorExistencia = False
+ Dim TextoExistencia As StringBuilder = New StringBuilder
+
+ Try
+ 'VALIDA ALMACEN DISTINTA SUCURSAL DEBE SER TRANSITORIO
+ If Not UsuarioActual.CveEmpresa.Contiene(7, 140) Then '[IPP] EMPRESA VIGILANCIA NO OCUPA TRANSITORIOS - TIENEN MIL SUCURSALES Xd
+ If Not ChkTransitorio.Checked Then
+ 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 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")
+ ChkTransitorio.Checked = True
+ If ChkTransitorio.Checked Then RegistraScript("$('#DivTransitorio').show(200);", "MuestraDivTransitorio")
+ Exit Sub
+ End If
+ End If
+ End If
+ End If
+
+ 'VALIDA QUE TENGA MOVTOS
+ If Not GvDatos.Rows.Count > 0 Then
+ Alert("No hay movimientos para el traspaso", TipoMensaje.MsgAdvertencia)
+ RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
+ Exit Sub
+ End If
+
+ 'VALIDA ESTATUS EXISTENCIA
+ For Each dr As DataRow In DtMovimientos.Rows
+ If dr("EstatusExistencia").ToString = "-1" Then
+ Alert("Tiene que rectificar los movimientos con error.", TipoMensaje.MsgError)
+ If ChkTransitorio.Checked Then RegistraScript("$('#DivTransitorio').show(200);")
+ Exit Sub
+ End If
+ Next
+
+
+
+ 'VALIDA LA EXISTENCIA DEL ALMACEN DE ORIGEN
+
+ Dim Existencia As Double
+ TextoExistencia.Append("Los siguiente productos se ajustaron por falta de exitencia: ")
+ If Not CargadoDeMov Then
+
+ For Each dr As DataRow In DtMovimientos.Rows
+ Existencia = ObjInventario.GetExistenciasPS(dr("CvePS").ToString.ToEntero, dr("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, DdlAlmacenOrigen.SelectedValue.ToEntero, FechaMovto:=TxtFecha.Text.ToDate.ToString("yyyy/MM/dd 23:59"), SerieLote:=If(dr("SerieLote").ToString = "", "-1", dr("SerieLote").ToString), PendientePorSurtir:=1)
+ Existencia -= DtMovimientos.SUM("Cantidad", $"CvePS = {dr("CvePS").ToString.ToEntero} AND CveUM = {dr("CveUM").ToString.ToEntero} {If(dr("SerieLote").ToString <> "-1", $" AND SerieLote = '{dr("SerieLote").ToString}'", "")}")
+ 'DtMovimientos.SUM("Cantidad", String.Format("CvePS = {0}", dr("CvePS").ToString.ToEntero))
+
+ If Existencia < 0 Then
+ ErrorExistencia = True
+ dr("EstatusExistencia") = "-1"
+ dr("Cantidad") = Existencia
+ 'If Existencia <= 0 Then
+ TextoExistencia.AppendFormat("- #{0} {1} ", dr("No").ToString, dr("PS").ToString)
+ 'Else
+ 'Alert(String.Format("Solo hay en existencia: {0}", Existencia), TipoMensaje.MsgError)
+ 'End If
+ End If
+ Next
+ Else
+ For Each gvr As GridViewRow In GvDatos.Rows
+ Existencia = ObjInventario.GetExistenciasPS(gvr.DataKey("CvePS").ToString.ToEntero, gvr.DataKey("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, DdlAlmacenOrigen.SelectedValue.ToEntero, FechaMovto:=TxtFecha.Text.ToDate.ToString("yyyy/MM/dd 23:59"), SerieLote:=If(gvr.DataKey("SerieLote").ToString = "", "-1", gvr.DataKey("SerieLote").ToString), PendientePorSurtir:=1)
+ Existencia -= gvr.FCTextBox("TxtCantidad2").Text.ToEntero
+ If Existencia < 0 Then
+ ErrorExistencia = True
+
+ gvr.FCTextBox("TxtCantidad2").Text = (Existencia + gvr.FCTextBox("TxtCantidad2").Text.ToEntero).ToString
+ TextoExistencia.AppendFormat("- #{0} {1} ", gvr.DataKey("No").ToString, gvr.DataKey("PS").ToString)
+ End If
+ Next
+ End If
+
+ If ErrorExistencia Then
+ Alert(TextoExistencia.ToString, TipoMensaje.MsgError)
+ RegistraScript("playsonidito(''142608__autistic-lucario__error.wav'')")
+ ObjInventario.Dispose()
+ Exit Sub
+ End If
+
+ Dim TotalCantidad As Decimal = DtMovimientos.SUMD("Cantidad")
+ If UsuarioActual.Empresa.Funcionalidad(563) = "1" Then
+ If TotalCantidad <> DtSeccionAlmacen.FiltraParametros("TipoSeccionAlmacen = 1").SUMD("CantidadSeccionAlmacen") Then
+ Alert("La seccion de almacen no ha sido agregada completamente.", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
+ End If
+
+
+ Dim TipoAlmacenOrigen = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveTipoAlmacen", $"CveAlmacen = {DdlAlmacenOrigen.SelectedValue.ToEntero}").ToEntero
+ Dim TipoAlmacenDestino = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveTipoAlmacen", $"CveAlmacen = {DdlAlmacenDestino.SelectedValue.ToEntero}").ToEntero
+
+ ''[IPP-1Noviembre2018] SE COMENTA PORQUE NO TIENE NI PIES NI CABEZA. LE FALTA DESARROLLO
+ 'If (TipoAlmacenOrigen = 14 Or TipoAlmacenDestino = 14) And TipoAlmacenOrigen <> TipoAlmacenDestino Then
+ ' ObjInventario.Dispose()
+ ' 'es consumo interno
+ ' ConsumoInterno(TipoAlmacenOrigen, TipoAlmacenDestino)
+ 'End If
+
+
+
+ 'AGREGAMOS LA SALIDA DEL ALMACEN ORIGEN
+ CveMovimientoSalida = ObjInventario.AddMovimiento(DdlAlmacenOrigen.SelectedValue.ToEntero, TipoMovimientoSalida, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1,
Observaciones:=TxtObservaciones.Text.Trim, Recibio:=If(ChkTransitorio.Checked, TxtResponsable.Text.Trim, "-1"),
CveAlmacenDestino:=DdlAlmacenDestino.SelectedValue.ToEntero, GastoIndirecto:=If(ChkTransitorio.Checked And TxtGastoIndirecto.Text.ToDouble > 0, TxtGastoIndirecto.Text, "-1").ToDouble,
CveChofer:=If(ChkTransitorio.Checked, DdlChofer.SelectedValue.ToEntero, -1), Placa:=If(ChkTransitorio.Checked, TxtPlaca.Text.Trim, "-1"), FechaEntrega:=If(ChkTransitorio.Checked, TxtFechaEntrega.Text.Trim.ToDateTime.ToString("dd/MM/yyyy"), "-1"), EspecifUnidad:=If(ChkTransitorio.Checked, TxtEspecifUnidad.Text.Trim, "-1"),
ResponsableCarga:=If(ChkTransitorio.Checked, TxtResponsableCarga.Text.Trim, "-1"), ResponsableRecibio:=If(ChkTransitorio.Checked, TxtResponsableRecibio.Text.Trim, "-1"), Identificacion:=If(ChkTransitorio.Checked, TxtIdentificacion.Text.Trim, "-1"), Domicilio:=If(ChkTransitorio.Checked, TxtDomicilio.Text.Trim, "-1"),
Telefono:=If(ChkTransitorio.Checked, TxtTelefono.Text.Trim, "-1"), Ciudad:=If(ChkTransitorio.Checked, TxtCiudad.Text.Trim, "-1"), Licencia:=If(ChkTransitorio.Checked, TxtLicencia.Text.Trim, "-1"), Modulo:="TA/G2")
- FolioSalida = ObjInventario.Folio
- Folio = ObjInventario.Folio
- If CveMovimientoSalida <= 0 Then
- TextoError = "Ocurrió un error al generar el movimiento de salida"
- ErrorMovInv = True
- Else
- 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, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString, Observaciones:=Dr("Observaciones").ToString) Then
- ErrorMovInv = True
- TextoError = "Ocurrió un error al guardar los movimientos de salida"
- Exit For
- Else
- If ObjInventario.CveMovimientoDetalle > 0 AndAlso DtSeccionAlmacen.Rows.Count > 0 Then
- For Each Dr2 As DataRow In DtSeccionAlmacen.FiltraParametros($"IndexSeccionAlmacen = {Cont} AND TipoSeccionAlmacen = 1").Rows
- If Not ObjInventario.AddMovimientosDetalleSeccionesAlmacen(ObjInventario.CveMovimientoDetalle, Dr2("CveSeccionAlmacenOrigen").ToString.ToEntero, -Dr2("CantidadSeccionAlmacen").ToString.ToDecimal) Then
- ErrorMovInv = True
- TextoError = "Ocurrió un error al procesar las secciones de almacen. Por favor vuelva a intentar."
- Exit For
- End If
- Next
- End If
- End If
- Cont += 1
- Next
- End If
-
-
- 'VIRTUAL SALIDA
- If UsuarioActual.Empresa.Funcionalidad(573) = "1" Then
-
- Dim CveSubProyecto As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", $"CveAlmacen= {DdlAlmacenOrigen.SelectedValue}").ToEntero()
-
- Dim CveAlmacenVirtual As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa, 24).FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto={CveSubProyecto}").ToEntero()
-
- CveMovimientoVirtualSalida = ObjInventario.AddMovimiento(CveAlmacenVirtual, 37, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, Modulo:="TA/V", CveMovimientoRelacionado:=CveMovimientoSalida)
- FolioVirtualSalida = ObjInventario.Folio
- Dim dtvirtual As DataTable = Nothing
-
- If ObjInventario.GetMovimientosDetalleVirtual(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
- dtvirtual = ObjInventario.DtResultados
- For Each RowVirtual As DataRow In dtvirtual.Rows
- Dim CvePS = RowVirtual("CvePS").ToString().ToEntero()
- Dim CantidadUsado As Double = RowVirtual("Cantidad").ToString().ToDouble()
- Dim PU As Decimal = RowVirtual("PU").ToString().ToDecimal()
- Dim CveUM As Integer = RowVirtual("CveUM").ToString().ToEntero()
-
- If Not ObjInventario.AddMovimientoDetalle(CveMovimientoVirtualSalida, CantidadUsado, CveUM, CvePS, PU, -1, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then
- ErrorMovInv = True
- Exit For
- End If
- Next
- Else
+ FolioSalida = ObjInventario.Folio
+ Folio = ObjInventario.Folio
+ If CveMovimientoSalida <= 0 Then
+ TextoError = "Ocurrió un error al generar el movimiento de salida"
ErrorMovInv = True
+ Else
+ 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, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString, Observaciones:=Dr("Observaciones").ToString) Then
+ ErrorMovInv = True
+ TextoError = "Ocurrió un error al guardar los movimientos de salida"
+ Exit For
+ Else
+ If ObjInventario.CveMovimientoDetalle > 0 AndAlso DtSeccionAlmacen.Rows.Count > 0 Then
+ For Each Dr2 As DataRow In DtSeccionAlmacen.FiltraParametros($"IndexSeccionAlmacen = {Cont} AND TipoSeccionAlmacen = 1").Rows
+ If Not ObjInventario.AddMovimientosDetalleSeccionesAlmacen(ObjInventario.CveMovimientoDetalle, Dr2("CveSeccionAlmacenOrigen").ToString.ToEntero, -Dr2("CantidadSeccionAlmacen").ToString.ToDecimal) Then
+ ErrorMovInv = True
+ TextoError = "Ocurrió un error al procesar las secciones de almacen. Por favor vuelva a intentar."
+ Exit For
+ End If
+ Next
+ End If
+ End If
+ Cont += 1
+ Next
End If
- End If
- 'AGREGAMOS LA ENTRADA
- If Not ChkTransitorio.Checked Then 'SI NO ES TRANSITORIO SE HACE LA RECEPCION DE INMEDIATO
- If Not ErrorMovInv Then
- Dim TipoMovimientoEntrada = 27
- AlmacenEntrada = If(ChkTransitorio.Checked, DdlAlmacenTransitorio.SelectedValue.ToEntero, DdlAlmacenDestino.SelectedValue.ToEntero)
- CveMovimientoEntrada = ObjInventario.AddMovimiento(AlmacenEntrada, TipoMovimientoEntrada, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, -1, -1,
+
+ 'VIRTUAL SALIDA
+ If UsuarioActual.Empresa.Funcionalidad(573) = "1" Then
+
+ Dim CveSubProyecto As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", $"CveAlmacen= {DdlAlmacenOrigen.SelectedValue}").ToEntero()
+
+ Dim CveAlmacenVirtual As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa, 24).FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto={CveSubProyecto}").ToEntero()
+
+ CveMovimientoVirtualSalida = ObjInventario.AddMovimiento(CveAlmacenVirtual, 37, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, Modulo:="TA/V", CveMovimientoRelacionado:=CveMovimientoSalida)
+ FolioVirtualSalida = ObjInventario.Folio
+ Dim dtvirtual As DataTable = Nothing
+
+ If ObjInventario.GetMovimientosDetalleVirtual(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
+ dtvirtual = ObjInventario.DtResultados.Copy()
+ For Each RowVirtual As DataRow In dtvirtual.Rows
+ Dim CvePS = RowVirtual("CvePS").ToString().ToEntero()
+ Dim CantidadUsado As Double = RowVirtual("Cantidad").ToString().ToDouble()
+ Dim PU As Decimal = RowVirtual("PU").ToString().ToDecimal()
+ Dim CveUM As Integer = RowVirtual("CveUM").ToString().ToEntero()
+
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoVirtualSalida, CantidadUsado, CveUM, CvePS, PU, -1, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then
+ ErrorMovInv = True
+ Exit For
+ End If
+ Next
+ dtvirtual.Dispose()
+ Else
+ ErrorMovInv = True
+ End If
+ End If
+
+ 'AGREGAMOS LA ENTRADA
+ If Not ChkTransitorio.Checked Then 'SI NO ES TRANSITORIO SE HACE LA RECEPCION DE INMEDIATO
+ If Not ErrorMovInv Then
+ Dim TipoMovimientoEntrada = 27
+ AlmacenEntrada = If(ChkTransitorio.Checked, DdlAlmacenTransitorio.SelectedValue.ToEntero, DdlAlmacenDestino.SelectedValue.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")
- FolioEntrada = ObjInventario.Folio
- If CveMovimientoEntrada <= 0 Then
- TextoError = "Ocurrió un error al generar el movimiento de entrada"
- ErrorMovInv = True
- Else
- 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, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString, Observaciones:=Dr("Observaciones").ToString) Then
- ErrorMovInv = True
- TextoError = "Ocurrió un error al guardar los movimientos de entrada"
- Exit For
- Else
- If ObjInventario.CveMovimientoDetalle > 0 AndAlso DtSeccionAlmacen.Rows.Count > 0 Then
- For Each Dr2 As DataRow In DtSeccionAlmacen.FiltraParametros($"IndexSeccionAlmacen = {Cont} AND TipoSeccionAlmacen = 1").Rows
- If Not ObjInventario.AddMovimientosDetalleSeccionesAlmacen(ObjInventario.CveMovimientoDetalle, Dr2("CveSeccionAlmacenDestino").ToString.ToEntero, Dr2("CantidadSeccionAlmacen").ToString.ToDecimal) Then
- ErrorMovInv = True
- TextoError = "Ocurrió un error al procesar las secciones de almacen. Por favor vuelva a intentar."
- Exit For
- End If
- Next
- End If
- End If
- Cont += 1
- Next
- End If
- End If
- 'VIRTUAL ENTRADA
- If UsuarioActual.Empresa.Funcionalidad(573) = "1" Then
- Dim CveSubProyecto As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", $"CveAlmacen= {DdlAlmacenDestino.SelectedValue}").ToEntero()
-
- Dim CveAlmacenVirtual As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveAlmacen", $" CveTipoAlmacen =24 AND CveSubProyecto={CveSubProyecto}").ToEntero()
-
- CveMovimientoVirtualEntrada = ObjInventario.AddMovimiento(CveAlmacenVirtual, 36, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, CveMovimientoRelacionado:=CveMovimientoSalida, Modulo:="TA/S3")
- FolioVirtualEntrada = ObjInventario.Folio
- Dim dtvirtual As DataTable = Nothing
-
- If CveMovimientoVirtualEntrada > 0 AndAlso ObjInventario.GetMovimientosDetalleVirtual(CveMovimientoEntrada, UsuarioActual.CveEmpresa) Then
- dtvirtual = ObjInventario.DtResultados
- For Each RowVirtual As DataRow In dtvirtual.Rows
- Dim CvePS = RowVirtual("CvePS").ToString().ToEntero()
- Dim CantidadUsado As Double = RowVirtual("Cantidad").ToString().ToDouble()
- Dim PU As Decimal = RowVirtual("PU").ToString().ToDecimal()
- Dim CveUM As Integer = RowVirtual("CveUM").ToString().ToEntero()
-
- If Not ObjInventario.AddMovimientoDetalle(CveMovimientoVirtualEntrada, CantidadUsado, CveUM, CvePS, PU, -1, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then
- ErrorMovInv = True
- Exit For
- End If
- Next
- Else
+ FolioEntrada = ObjInventario.Folio
+ If CveMovimientoEntrada <= 0 Then
+ TextoError = "Ocurrió un error al generar el movimiento de entrada"
ErrorMovInv = True
+ Else
+ 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, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString, Observaciones:=Dr("Observaciones").ToString) Then
+ ErrorMovInv = True
+ TextoError = "Ocurrió un error al guardar los movimientos de entrada"
+ Exit For
+ Else
+ If ObjInventario.CveMovimientoDetalle > 0 AndAlso DtSeccionAlmacen.Rows.Count > 0 Then
+ For Each Dr2 As DataRow In DtSeccionAlmacen.FiltraParametros($"IndexSeccionAlmacen = {Cont} AND TipoSeccionAlmacen = 1").Rows
+ If Not ObjInventario.AddMovimientosDetalleSeccionesAlmacen(ObjInventario.CveMovimientoDetalle, Dr2("CveSeccionAlmacenDestino").ToString.ToEntero, Dr2("CantidadSeccionAlmacen").ToString.ToDecimal) Then
+ ErrorMovInv = True
+ TextoError = "Ocurrió un error al procesar las secciones de almacen. Por favor vuelva a intentar."
+ Exit For
+ End If
+ Next
+ End If
+ End If
+ Cont += 1
+ Next
+ End If
+ End If
+ 'VIRTUAL ENTRADA
+ If UsuarioActual.Empresa.Funcionalidad(573) = "1" Then
+ Dim CveSubProyecto As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", $"CveAlmacen= {DdlAlmacenDestino.SelectedValue}").ToEntero()
+
+ Dim CveAlmacenVirtual As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveAlmacen", $" CveTipoAlmacen =24 AND CveSubProyecto={CveSubProyecto}").ToEntero()
+
+ CveMovimientoVirtualEntrada = ObjInventario.AddMovimiento(CveAlmacenVirtual, 36, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, CveMovimientoRelacionado:=CveMovimientoSalida, Modulo:="TA/S3")
+ FolioVirtualEntrada = ObjInventario.Folio
+ Dim dtvirtual As DataTable = Nothing
+
+ If CveMovimientoVirtualEntrada > 0 AndAlso ObjInventario.GetMovimientosDetalleVirtual(CveMovimientoEntrada, UsuarioActual.CveEmpresa, CveMovimientoRelacionado:=CveMovimientoSalida) Then
+ dtvirtual = ObjInventario.DtResultados.Copy()
+ For Each RowVirtual As DataRow In dtvirtual.Rows
+ Dim CvePS = RowVirtual("CvePS").ToString().ToEntero()
+ Dim CantidadUsado As Double = RowVirtual("Cantidad").ToString().ToDouble()
+ Dim PU As Decimal = RowVirtual("PUOriginal").ToString().ToDecimal()
+ Dim CveUM As Integer = RowVirtual("CveUM").ToString().ToEntero()
+
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoVirtualEntrada, CantidadUsado, CveUM, CvePS, PU, -1, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then
+ ErrorMovInv = True
+ Exit For
+ End If
+ Next
+ dtvirtual.Dispose()
+ Else
+ ErrorMovInv = True
+ End If
+ End If
+ Dim Concepto As String = TxtObservaciones.Text
+ If Concepto = "" Then Concepto = "Traspaso"
+ 'AGREGAMOS PREPOLIZAS TRASPASO DIRECTO:
+ If Not ErrorMovInv Then
+ Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("Inventario/TraspasoAlmacen", 53, 0, 0, 1, Fecha, Concepto, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
+ If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
+
+ Dim resultado As DataTable = ObjInventario.DtResultados
+ Dim importe As Decimal = resultado.SUMD("Total").RoundSQL
+ Dim IdCtaContableSalida As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", String.Format("CveAlmacen = {0}", DdlAlmacenOrigen.SelectedValue.ToEntero)).ToEntero
+ Dim IdCtaContableEntrada As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", String.Format("CveAlmacen = {0}", DdlAlmacenDestino.SelectedValue.ToEntero)).ToEntero
+ Dim Contabilizable As Boolean = True
+
+ If IdCtaContableSalida = IdCtaContableEntrada Then Contabilizable = False
+
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importe, TxtObservaciones.Text, 68, TxtObservaciones.Text, Fecha, IdCtaContableSalida, -1, CveMovimientoAlmacen:=CveMovimientoSalida, Contabilizable:=Contabilizable, ImporteMX:=importe) Then
+ ErrorMovInv = True
+ End If
+
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importe, TxtObservaciones.Text, 68, TxtObservaciones.Text, Fecha, IdCtaContableEntrada, -1, CveMovimientoAlmacen:=CveMovimientoEntrada, Contabilizable:=Contabilizable, ImporteMX:=importe) Then
+ ErrorMovInv = True
+ End If
+ End If
End If
End If
- Dim Concepto As String = TxtObservaciones.Text
- If Concepto = "" Then Concepto = "Traspaso"
- 'AGREGAMOS PREPOLIZAS TRASPASO DIRECTO:
+ Else
If Not ErrorMovInv Then
+ Dim Concepto As String = TxtObservaciones.Text
+ If Concepto = "" Then Concepto = "Traspaso"
Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("Inventario/TraspasoAlmacen", 53, 0, 0, 1, Fecha, Concepto, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
Dim resultado As DataTable = ObjInventario.DtResultados
Dim importe As Decimal = resultado.SUMD("Total").RoundSQL
- Dim IdCtaContableSalida As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", String.Format("CveAlmacen = {0}", DdlAlmacenOrigen.SelectedValue.ToEntero)).ToEntero
- Dim IdCtaContableEntrada As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", String.Format("CveAlmacen = {0}", DdlAlmacenDestino.SelectedValue.ToEntero)).ToEntero
- Dim Contabilizable As Boolean = True
+ Dim IdCtaContable As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", String.Format("CveAlmacen = {0}", DdlAlmacenTransitorio.SelectedValue.ToEntero)).ToEntero
- If IdCtaContableSalida = IdCtaContableEntrada Then Contabilizable = False
-
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importe, TxtObservaciones.Text, 68, TxtObservaciones.Text, Fecha, IdCtaContableSalida, -1, CveMovimientoAlmacen:=CveMovimientoSalida, Contabilizable:=Contabilizable, ImporteMX:=importe) Then
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importe, TxtObservaciones.Text, 68, TxtObservaciones.Text, Fecha, IdCtaContable, -1, CveMovimientoAlmacen:=CveMovimientoSalida, ImporteMX:=importe, Contabilizable:=False) Then
ErrorMovInv = True
End If
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importe, TxtObservaciones.Text, 68, TxtObservaciones.Text, Fecha, IdCtaContableEntrada, -1, CveMovimientoAlmacen:=CveMovimientoEntrada, Contabilizable:=Contabilizable, ImporteMX:=importe) Then
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importe, TxtObservaciones.Text, 289, TxtObservaciones.Text, Fecha, IdCtaContable, -1, CveMovimientoAlmacen:=CveMovimientoSalida, ImporteMX:=importe, Contabilizable:=False) Then
ErrorMovInv = True
End If
End If
End If
End If
- Else
- If Not ErrorMovInv Then
- Dim Concepto As String = TxtObservaciones.Text
- If Concepto = "" Then Concepto = "Traspaso"
- Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("Inventario/TraspasoAlmacen", 53, 0, 0, 1, Fecha, Concepto, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
- If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
-
- Dim resultado As DataTable = ObjInventario.DtResultados
- Dim importe As Decimal = resultado.SUMD("Total").RoundSQL
- Dim IdCtaContable As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", String.Format("CveAlmacen = {0}", DdlAlmacenTransitorio.SelectedValue.ToEntero)).ToEntero
-
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importe, TxtObservaciones.Text, 68, TxtObservaciones.Text, Fecha, IdCtaContable, -1, CveMovimientoAlmacen:=CveMovimientoSalida, ImporteMX:=importe, Contabilizable:=False) Then
- ErrorMovInv = True
- End If
-
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importe, TxtObservaciones.Text, 289, TxtObservaciones.Text, Fecha, IdCtaContable, -1, CveMovimientoAlmacen:=CveMovimientoSalida, ImporteMX:=importe, Contabilizable:=False) Then
- ErrorMovInv = True
- End If
- End If
- End If
- End If
- ''[IPP-1Noviembre2018] SE COMENTA PORQUE NO TIENE NI PIES NI CABEZA. LE FALTA DESARROLLO
- ''CONSUMO INTERNO
- 'If Not ErrorMovInv Then
- ' If (TipoAlmacenOrigen = 14 Or TipoAlmacenDestino = 14) And TipoAlmacenOrigen <> TipoAlmacenDestino Then
- ' ConsumoInterno(TipoAlmacenOrigen, TipoAlmacenDestino)
- ' End If
- 'End If
+ ''[IPP-1Noviembre2018] SE COMENTA PORQUE NO TIENE NI PIES NI CABEZA. LE FALTA DESARROLLO
+ ''CONSUMO INTERNO
+ 'If Not ErrorMovInv Then
+ ' If (TipoAlmacenOrigen = 14 Or TipoAlmacenDestino = 14) And TipoAlmacenOrigen <> TipoAlmacenDestino Then
+ ' ConsumoInterno(TipoAlmacenOrigen, TipoAlmacenDestino)
+ ' End If
+ 'End If
+
+ Catch ex As Exception
+ ErrorMovInv = True
+ OnError("Ocurrió un error al realizar el traspaso", ex)
+ End Try
If Not ErrorMovInv Then
DtTraslado = DtMovimientos.Copy
@@ -1614,7 +1627,7 @@ Partial Class Inventarios_TraspasoAlmacen
Dim dtvirtual As DataTable = Nothing
If CveMovimientoVirtualEntrada > 0 AndAlso ObjInventario.GetMovimientosDetalleVirtual(CveMovimientoEntrada, UsuarioActual.CveEmpresa, CveMovimientoRelacionado:=CveMovimientoSalida) Then
- dtvirtual = ObjInventario.DtResultados
+ dtvirtual = ObjInventario.DtResultados.Copy()
For Each RowVirtual As DataRow In dtvirtual.Rows
Dim CvePS = RowVirtual("CvePS").ToString().ToEntero()
Dim CantidadUsado As Decimal = RowVirtual("Cantidad").ToString().ToDecimal()
@@ -1627,6 +1640,7 @@ Partial Class Inventarios_TraspasoAlmacen
Exit For
End If
Next
+ dtvirtual.Dispose()
Else
TextoError = "No se pudo registrar el movimiento virtual"
ErrorMovInv = True
@@ -1737,7 +1751,7 @@ Partial Class Inventarios_TraspasoAlmacen
'REGISTRA LA SALIDA Y ENTRADA (TRASPASO)
ObjInventario.IniciaTransacSQL() 'Inicia la transacción
Dim Fecha As Date = TxtFechaRecepcion.Text.ToDate
-
+ Dim CveMovimientoReferencia As Integer = -1
'AGREGAMOS LA ENTRADA
CveMovimientoSalida = ObjInventario.AddMovimiento(GvDatosRecepcion.Rows(0).DataKey("CveAlmacenDestino").ToEntero, 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")
@@ -1751,6 +1765,7 @@ Partial Class Inventarios_TraspasoAlmacen
Dim CveMovimientoDetalleEntrada As Integer = 0
Dim Cont As Integer = 0
For Each gvr As GridViewRow In GvDatosRecepcion.Rows
+ CveMovimientoReferencia = gvr.DataKey("CveMovimiento").ToEntero()
Dim dataRowAux As DataRow = Dtt.FiltroPrimero(String.Format(" CveMovimientoDetalle = '{0}'", If(gvr.DataKey("CveMovimientoDetalle").ToString = "", "0", gvr.DataKey("CveMovimientoDetalle").ToString)))
Dim cantidadDisponibleValidacion As Decimal = 0
@@ -1825,16 +1840,16 @@ Partial Class Inventarios_TraspasoAlmacen
If CveAlmacenVirtual > 0 Then
- CveMovimientoVirtualEntrada = ObjInventario.AddMovimiento(CveAlmacenVirtual, 2, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, Modulo:="TA/S2")
+ CveMovimientoVirtualEntrada = ObjInventario.AddMovimiento(CveAlmacenVirtual, 36, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, CveMovimientoRelacionado:=CveMovimientoSalida, Modulo:="TA/S2")
FolioVirtualEntrada = ObjInventario.Folio
Dim dtvirtual As DataTable = Nothing
- If CveMovimientoVirtualEntrada > 0 AndAlso ObjInventario.GetMovimientosDetalleVirtual(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
- dtvirtual = ObjInventario.DtResultados
+ If CveMovimientoVirtualEntrada > 0 AndAlso ObjInventario.GetMovimientosDetalleVirtual(CveMovimientoSalida, UsuarioActual.CveEmpresa, CveMovimientoRelacionado:=CveMovimientoReferencia) Then
+ dtvirtual = ObjInventario.DtResultados.Copy()
For Each RowVirtual As DataRow In dtvirtual.Rows
Dim CvePS = RowVirtual("CvePS").ToString().ToEntero()
Dim CantidadUsado As Decimal = RowVirtual("Cantidad").ToString().ToDecimal()
- Dim PU As Decimal = RowVirtual("PU").ToString().ToDecimal()
+ Dim PU As Decimal = RowVirtual("PUOriginal").ToString().ToDecimal()
Dim CveUM As Integer = RowVirtual("CveUM").ToString().ToEntero()
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoVirtualEntrada, CantidadUsado, CveUM, CvePS, PU, -1, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then
@@ -1842,6 +1857,7 @@ Partial Class Inventarios_TraspasoAlmacen
Exit For
End If
Next
+ dtvirtual.Dispose()
Else
TextoError = "No se pudo registrar el movimiento virtual"
ErrorMovInv = True