This commit is contained in:
Rakcsle Supertramp
2020-06-12 20:51:28 -07:00
37 changed files with 8637 additions and 765 deletions

View File

@@ -630,7 +630,7 @@ Public Class ClsInventarios
SqlAdapter.Fill(Data) SqlAdapter.Fill(Data)
Retorno = True Retorno = True
Catch Ex1 As SqlException 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) Alert("Ya existe una Sección de Almacén con el mismo nombre: " & Seccion & ".", TipoMensaje.MsgAdvertencia)
Else Else
Me.OnError("Ocurrió un error al Guardar la Sección de Almacén.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) Me.OnError("Ocurrió un error al Guardar la Sección de Almacén.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())

View File

@@ -4571,7 +4571,7 @@ Namespace Modelos
Next 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 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) 'VERIFICA LOS MOVIMIENTOS DE DEVOLUCION YA GENERADOS QUE TENGAN EXISTENCIA EN (ENTREGA POR ADELANTADO)
@@ -4584,21 +4584,24 @@ Namespace Modelos
End If End If
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 If Not ErrorCancelar AndAlso DtDevoluciones IsNot Nothing Then
For Each CveRemision As Integer In ListaRemisionesCancelar For Each CveRemision As Integer In ListaRemisionesCancelar
Dim DtDevRemision As DataTable = DtDevoluciones.FiltraParametros($"CveRemision={CveRemision}") 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() For Each RowDevolucion As DataRow In DtDevMovs.Rows
CveAlmacenDevolucion = RowDevolucion("CveAlmacenDestino").ToString().ToEntero() 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 Next
Else Else
ErrorCancelar = True ErrorCancelar = True
@@ -5028,7 +5031,7 @@ Namespace Modelos
'SALIDA DE (ENTREGA POR ADELANTADO) 'SALIDA DE (ENTREGA POR ADELANTADO)
If Not ErrorCancelar Then 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 CveVentaDetalleRem = DrRem("CveVentaDetalleRemision").ToString.ToEntero
Dim CantidadRem = DrRem("Cantidad").ToString.ToDecimal Dim CantidadRem = DrRem("Cantidad").ToString.ToDecimal
@@ -5037,7 +5040,7 @@ Namespace Modelos
Exit For Exit For
End If 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 ErrorCancelar = True
Exit For Exit For
End If End If

View File

@@ -1178,6 +1178,7 @@ Namespace Extensiones
Else Else
TmpDr = dt.Rows(0) TmpDr = dt.Rows(0)
End If End If
dt.Dispose()
End If End If
Return TmpDr Return TmpDr
@@ -1190,6 +1191,7 @@ Namespace Extensiones
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
dt.PrimaryKey = New DataColumn() {dt.Columns(PrimaryKey)} dt.PrimaryKey = New DataColumn() {dt.Columns(PrimaryKey)}
TmpDr = dt.Rows.Find(Valor) TmpDr = dt.Rows.Find(Valor)
dt.Dispose()
End If End If
Return TmpDr Return TmpDr
@@ -1250,6 +1252,7 @@ Namespace Extensiones
Else Else
Retorno = dt.Rows(0)(Columna).ToString Retorno = dt.Rows(0)(Columna).ToString
End If End If
dt.Dispose()
End If End If
Return Retorno Return Retorno

View File

@@ -236,9 +236,19 @@ Partial Class Bancos_ConciliacionesBancariasaspx
Seleccionados += 1 Seleccionados += 1
Fecha = Gvr.DataKey("FechaDocumento").ToDate Fecha = Gvr.DataKey("FechaDocumento").ToDate
If Gvr.DataKey("Tipo") = "Cargo" Then 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 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
End If End If
Next Next

View File

@@ -2097,15 +2097,15 @@ Partial Class Bancos_PopIEVentas
If CveMonedaVenta = 1 And CveMoneda = 2 Then If CveMonedaVenta = 1 And CveMoneda = 2 Then
'factura pesos, pago en dolares 'factura pesos, pago en dolares
tImporteVenta = ((MovimientoPagar.Total * PorcentajePago) * tipoCambioVenta).RoundSQL tImporteVenta = ((MovimientoPagar.Total * PorcentajePago) * tipoCambioVentaValuacion).RoundSQL
tImportePago = ((MovimientoPagar.Total * PorcentajePago) * tipoCambioVenta / tipoCambioPago).RoundSQL tImportePago = ((MovimientoPagar.Total * PorcentajePago) * tipoCambioVenta / tipoCambioPago).RoundSQL
ElseIf CveMonedaVenta = 2 And CveMoneda = 2 Then ElseIf CveMonedaVenta = 2 And CveMoneda = 2 Then
'factura dolares, pago en dolares 'factura dolares, pago en dolares
tImporteVenta = ((MovimientoPagar.Total * PorcentajePago) * tipoCambioVenta).RoundSQL tImporteVenta = ((MovimientoPagar.Total * PorcentajePago) * tipoCambioVentaValuacion).RoundSQL
tImportePago = ((MovimientoPagar.Total * PorcentajePago) * tipoCambioPago).RoundSQL tImportePago = ((MovimientoPagar.Total * PorcentajePago) * tipoCambioPago).RoundSQL
ElseIf CveMonedaVenta = 2 And CveMoneda = 1 Then ElseIf CveMonedaVenta = 2 And CveMoneda = 1 Then
'factura dolares, pago en pesos 'factura dolares, pago en pesos
tImporteVenta = ((MovimientoPagar.Total * PorcentajePago) * tipoCambioVenta).RoundSQL tImporteVenta = ((MovimientoPagar.Total * PorcentajePago) * tipoCambioVentaValuacion).RoundSQL
tImportePago = ((MovimientoPagar.Total * PorcentajePago) * tipoCambioPago).RoundSQL tImportePago = ((MovimientoPagar.Total * PorcentajePago) * tipoCambioPago).RoundSQL
End If End If

View File

@@ -2292,7 +2292,7 @@ Partial Class Bancos_ProveedoresAbonar
'If Archivo.Exists Then 'If Archivo.Exists Then
Msg.AppendFormat("<li> <a class=""Texto"" target='_blank' href=""/Compras/PopUpVerFactura.aspx?P={0}"">Imprimir movimiento</a></li> ", Encripta(String.Format("OP=IECHEQUE&CVEIE={0}", CveIE))) Msg.AppendFormat("<li> <a class=""Texto"" target='_blank' href=""/Compras/PopUpVerFactura.aspx?P={0}"">Imprimir movimiento</a></li> ", Encripta(String.Format("OP=IECHEQUE&CVEIE={0}", CveIE)))
'End If 'End If
Msg.AppendFormat("<li><a class=""Texto"" target='_blank' href=""/Compras/PopUpVerFactura.aspx?P={0}"">Listado</a></li>", Encripta(String.Format("Opcion=ImprimeMov&CveIE={0}", CveIE))) Msg.AppendFormat("<li><a class=""Texto"" target='_blank' href=""/Compras/PopUpVerFactura.aspx?P={0}"">Listado</a></li>", Encripta(String.Format("OP=ImprimeMov&CveIE={0}", CveIE)))
If IDPoliza > 0 Then Msg.AppendFormat("<li><a class=""Texto"" target='_blank' href=""/Contabilidad/RegPoliza.aspx?IdPoliza={0}"">Póliza</a></li>", IDPoliza) If IDPoliza > 0 Then Msg.AppendFormat("<li><a class=""Texto"" target='_blank' href=""/Contabilidad/RegPoliza.aspx?IdPoliza={0}"">Póliza</a></li>", IDPoliza)
Dim Mensaje As String = String.Format("<br />El Documento se generó correctamente.<br /><br /><br />Descargas:<ul>{0}</ul>", Msg.ToString) Dim Mensaje As String = String.Format("<br />El Documento se generó correctamente.<br /><br /><br />Descargas:<ul>{0}</ul>", Msg.ToString)

View File

@@ -222,8 +222,8 @@ Partial Class Bancos_RepProgramarRecursos
CargaCreditosVencimiento() CargaCreditosVencimiento()
'Esconde PROYECTO EMP 13,14 'Esconde PROYECTO EMP 13,14,83
If UsuarioActual.CveEmpresa = 13 Or UsuarioActual.CveEmpresa = 14 Then If UsuarioActual.CveEmpresa.Contiene(13,14,83) Then
Gv.Columns(3).Visible = False Gv.Columns(3).Visible = False
Gv.Columns(4).Visible = True Gv.Columns(4).Visible = True
ElseIf UsuarioActual.CveEmpresa <> 119 Then ElseIf UsuarioActual.CveEmpresa <> 119 Then

View File

@@ -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" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="E" runat="Server">
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="C" runat="Server">
<rvweb:ReportViewer ID="rv" runat="server" Width="1000px" Font-Names="Verdana"
Font-Size="8pt" Height="1000px" ToolBarItemBorderColor=""
BackColor="#CCCCCC">
<LocalReport EnableExternalImages="True">
</LocalReport>
</rvweb:ReportViewer>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>

View File

@@ -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

Binary file not shown.

View File

@@ -1754,6 +1754,8 @@ Partial Class Compras_Compras
Validada = True Validada = True
End If End If
'Valida.Dispose() 'Valida.Dispose()
Else
Alert("Los servicios de validacion de facturas del SAT, no están activados.", TipoMensaje.ToastError, "", 0)
End If End If
UpPSS.Update() UpPSS.Update()
@@ -10703,6 +10705,7 @@ Partial Class Compras_Compras
'VALIDA UNIDAD DE MEDIDA 'VALIDA UNIDAD DE MEDIDA
If e.Row.DBCampo("CvePS").ToString.ToEntero > 0 Then 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 'SI UM NO ESTA REGISTRADA
If e.Row.DBCampo("CveUM").ToString.ToEntero <= 0 Then If e.Row.DBCampo("CveUM").ToString.ToEntero <= 0 Then
@@ -10714,7 +10717,6 @@ Partial Class Compras_Compras
'EQUIVALENCIA 'EQUIVALENCIA
If e.Row.DBCampo("CveUM").ToString.ToEntero > 0 And e.Row.DBCampo("CveTipoPS").ToString.ToEntero = 2 Then 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 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 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 If Version = "3.3" And CveSATPS > 0 Then
Dim DrPSSAT As DataRow = Nothing Dim DrPSSAT As DataRow = Nothing
If CargaXml Then If CargaXml Then
If GlobalDTPSATPS().FiltraParametros(String.Format("SATClavePS={0}", CveSATPS)).Rows.Count > 0 Then DrPSSAT = GlobalDTPSATPS().FiltroPrimero(String.Format("SATClavePS={0}", CveSATPS))
DrPSSAT = GlobalDTPSATPS().FiltraParametros(String.Format("SATClavePS={0}", CveSATPS)).Rows(0) 'If GlobalDTPSATPS().FiltraParametros(String.Format("SATClavePS={0}", CveSATPS)).Rows.Count > 0 Then
End If ' DrPSSAT = GlobalDTPSATPS().FiltraParametros(String.Format("SATClavePS={0}", CveSATPS)).Rows(0)
'End If
Else Else
If GlobalDTPSATPS().FiltraParametros(String.Format("CveSATPS={0}", CveSATPS)).Rows.Count > 0 Then DrPSSAT = GlobalDTPSATPS().FiltroPrimero(String.Format("SATClavePS={0}", CveSATPS))
DrPSSAT = GlobalDTPSATPS().FiltraParametros(String.Format("CveSATPS={0}", CveSATPS)).Rows(0) 'If GlobalDTPSATPS().FiltraParametros(String.Format("CveSATPS={0}", CveSATPS)).Rows.Count > 0 Then
End If ' DrPSSAT = GlobalDTPSATPS().FiltraParametros(String.Format("CveSATPS={0}", CveSATPS)).Rows(0)
'End If
End If End If
If DrPSSAT IsNot Nothing Then If DrPSSAT IsNot Nothing Then
Row("SATClaveProductoServicio") = DrPSSAT("SATClaveProductoServicio").ToString Row("SATClaveProductoServicio") = DrPSSAT("SATClaveProductoServicio").ToString

View File

@@ -1432,11 +1432,11 @@ Partial Class Compras_ReembolsosComprobaciones
Dim Mensaje As New StringBuilder Dim Mensaje As New StringBuilder
If CvePrePolizaExcedente > 0 Then If CvePrePolizaExcedente > 0 Then
Mensaje.AppendFormat("Abono Registrado Correctamente. <br/><br/> Cheque: <a target='_blank' href=/Bancos/IE.aspx?CveIE={0}>{1}</a> <br/><br/> <a target='_blank' href=""/Compras/PopUpVerFactura.aspx?P={2}"">Imprimir</a>", CveIEExcedente, TxtFolio.Text, Encripta(String.Format("Opcion=ImprimeMov&CveIE={0}", CveIEExcedente))) Mensaje.AppendFormat("Abono Registrado Correctamente. <br/><br/> Cheque: <a target='_blank' href=/Bancos/IE.aspx?CveIE={0}>{1}</a> <br/><br/> <a target='_blank' href=""/Compras/PopUpVerFactura.aspx?P={2}"">Imprimir</a>", CveIEExcedente, TxtFolio.Text, Encripta(String.Format("OP=ImprimeMov&CveIE={0}", CveIEExcedente)))
Mensaje.AppendFormat("</br> <br/>Póliza: <b> <a href='/Contabilidad/RegPoliza.aspx?IdPoliza={0}' class='Texto' target='_blank'>{1}</a><br/>", ObjMov.ContaIdPoliza, ObjMov.ContaFolio) Mensaje.AppendFormat("</br> <br/>Póliza: <b> <a href='/Contabilidad/RegPoliza.aspx?IdPoliza={0}' class='Texto' target='_blank'>{1}</a><br/>", ObjMov.ContaIdPoliza, ObjMov.ContaFolio)
Alert(Mensaje.ToString, TipoMensaje.MsgInformacion) Alert(Mensaje.ToString, TipoMensaje.MsgInformacion)
Else Else
Mensaje.AppendFormat("Abono Registrado Correctamente. <br/><br/> <a class=""Texto"" target='_blank' href=""/Compras/PopUpVerFactura.aspx?P={0}"">Imprimir</a>", Encripta(String.Format("Opcion=ImprimeMov&CveIE={0}", CveIERegistrado))) Mensaje.AppendFormat("Abono Registrado Correctamente. <br/><br/> <a class=""Texto"" target='_blank' href=""/Compras/PopUpVerFactura.aspx?P={0}"">Imprimir</a>", Encripta(String.Format("OP=ImprimeMov&CveIE={0}", CveIERegistrado)))
If CvePrePolizaIERegistrado > 0 Then If CvePrePolizaIERegistrado > 0 Then
Mensaje.AppendFormat("</br> <br/>Póliza: <b> <a href='/Contabilidad/RegPoliza.aspx?IdPoliza={0}' class='Texto' target='_blank'>{1}</a><br/>", ObjMov.ContaIdPoliza, ObjMov.ContaFolio) Mensaje.AppendFormat("</br> <br/>Póliza: <b> <a href='/Contabilidad/RegPoliza.aspx?IdPoliza={0}' class='Texto' target='_blank'>{1}</a><br/>", ObjMov.ContaIdPoliza, ObjMov.ContaFolio)
End If End If

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -58,7 +58,7 @@
</asp:DropDownList> </asp:DropDownList>
</li> </li>
<li runat="server" id="LiProveedor" visible="false">Proveedor: <li runat="server" id="LiProveedor" visible="false">Proveedor:
<ADS:Dropdownlost ID="DdlProveedorFiltro" runat="server" CssStyle="width: 275px;" DataTextField="RazonSocial" DataValueField="CveProveedor" Onselectedindexchange="DdlProveedorFiltro_selectedindexchange"></ADS:Dropdownlost> <ADS:Dropdownlost ID="DdlProveedorFiltro" runat="server" CssStyle="width: 275px;" DataTextField="RazonSocial" DataValueField="CveProveedor" Onselectedindexchange="DdlProveedorFiltro_selectedindexchange"></ADS:Dropdownlost>
<%--<asp:DropDownList ID="DdlProveedorFiltro" CssClass="form-control input-sm select2me" runat="server" CausesValidation="true" DataTextField="RazonSocial" DataValueField="CveProveedor" Width="275px" AutoPostBack="true"></asp:DropDownList>--%> <%--<asp:DropDownList ID="DdlProveedorFiltro" CssClass="form-control input-sm select2me" runat="server" CausesValidation="true" DataTextField="RazonSocial" DataValueField="CveProveedor" Width="275px" AutoPostBack="true"></asp:DropDownList>--%>
<%-- <asp:RequiredFieldValidator ID="RFVProveedor" runat="server" ControlToValidate="DdlProveedorFiltro" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Proveedor''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpConsultar"></asp:RequiredFieldValidator> <%-- <asp:RequiredFieldValidator ID="RFVProveedor" runat="server" ControlToValidate="DdlProveedorFiltro" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Proveedor''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpConsultar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCOProveedor" runat="server" HighlightCssClass="vco" TargetControlID="RFVProveedor" Width="350px"></ajax:ValidatorCalloutExtender>--%> <ajax:ValidatorCalloutExtender ID="VCOProveedor" runat="server" HighlightCssClass="vco" TargetControlID="RFVProveedor" Width="350px"></ajax:ValidatorCalloutExtender>--%>
@@ -107,7 +107,7 @@
<div class="row" id="TrProveedor" runat="server"> <div class="row" id="TrProveedor" runat="server">
<label class="col-md-2">Proveedor:</label> <label class="col-md-2">Proveedor:</label>
<div class="col-md-2"> <div class="col-md-2">
<ADS:Dropdownlost ID="DdlProveedor" runat="server" CssStyle="width: 320px;" DataTextField="RazonSocial" DataValueField="CveProveedor"></ADS:Dropdownlost> <ADS:Dropdownlost ID="DdlProveedor" runat="server" CssStyle="width: 320px;" DataTextField="RazonSocial" DataValueField="CveProveedor"></ADS:Dropdownlost>
<%--<asp:DropDownList ID="DdlProveedor" CssClass="form-control input-sm select2me" runat="server" CausesValidation="true" DataTextField="RazonSocial" DataValueField="CveProveedor" Width="320px" ValidationGroup="GrpGuardar"></asp:DropDownList>--%> <%--<asp:DropDownList ID="DdlProveedor" CssClass="form-control input-sm select2me" runat="server" CausesValidation="true" DataTextField="RazonSocial" DataValueField="CveProveedor" Width="320px" ValidationGroup="GrpGuardar"></asp:DropDownList>--%>
<%--<asp:RequiredFieldValidator ID="RFVProveedor" runat="server" ControlToValidate="DdlProveedor" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Proveedor''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>--%> <%--<asp:RequiredFieldValidator ID="RFVProveedor" runat="server" ControlToValidate="DdlProveedor" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Proveedor''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>--%>
<%--<ajax:ValidatorCalloutExtender ID="VCOProveedor" runat="server" HighlightCssClass="vco" TargetControlID="RFVProveedor" Width="350px"></ajax:ValidatorCalloutExtender>--%> <%--<ajax:ValidatorCalloutExtender ID="VCOProveedor" runat="server" HighlightCssClass="vco" TargetControlID="RFVProveedor" Width="350px"></ajax:ValidatorCalloutExtender>--%>
@@ -368,6 +368,10 @@
<th width="90px">Unidad</th> <th width="90px">Unidad</th>
<th runat="server" id="ThPU" width="80px">PU</th> <th runat="server" id="ThPU" width="80px">PU</th>
<th runat="server" id="ThPUExtranjero" width="80px" visible="false">PU Extran</th> <th runat="server" id="ThPUExtranjero" width="80px" visible="false">PU Extran</th>
<th style="width: 10%" runat="server" id="ThSeccion" visible="false">Sección almacén</th>
<th style="width: 10%" runat="server" id="ThSerie" visible="false">Serie</th>
<th style="width: 10%" runat="server" id="ThLote" visible="false">Lote</th>
<th style="width: 10%" runat="server" id="ThCaducidad" visible="false">Caducidad</th>
<th runat="server" id="ThTotal" width="80px">Total</th> <th runat="server" id="ThTotal" width="80px">Total</th>
<th width="100px">Comandos</th> <th width="100px">Comandos</th>
</tr> </tr>
@@ -404,6 +408,20 @@
<asp:TextBox ID="TxtPU" onkeyup="Recalcula();" Width="70px" ClientIDMode="Static" ValidationGroup="GprAgregar" runat="server" /> <asp:TextBox ID="TxtPU" onkeyup="Recalcula();" Width="70px" ClientIDMode="Static" ValidationGroup="GprAgregar" runat="server" />
</td> </td>
<td runat="server" id="TdPUExtranjero" visible="false"></td> <td runat="server" id="TdPUExtranjero" visible="false"></td>
<td runat="server" id="TrSeccion" visible="false">
<asp:DropDownList ID="DdlSeccionAlmacen" DataTextField="Seccion" AppendDataBoundItems="true" DataValueField="CveSeccion" Class="form-control input-sm select2me" Style="width: 95% !important" runat="server" CausesValidation="true">
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList>
</td>
<td runat="server" id="TrSerie" visible="false">
<asp:TextBox ID="TxtSerie" runat="server" Width="50px"></asp:TextBox>
</td>
<td runat="server" id="TrLote" visible="false">
<asp:TextBox ID="TxtLote" runat="server" Width="50px"></asp:TextBox>
</td>
<td runat="server" id="TrCaducidad" visible="false">
<asp:TextBox ID="TxtCaducidad" runat="server" Width="50px"></asp:TextBox>
</td>
<td runat="server" id="TdTotal" style="text-align: right;" align="center"> <td runat="server" id="TdTotal" style="text-align: right;" align="center">
<asp:Label ID="LbTotal" ClientIDMode="Static" runat="server" /> <asp:Label ID="LbTotal" ClientIDMode="Static" runat="server" />
</td> </td>
@@ -485,6 +503,10 @@
</ItemTemplate> </ItemTemplate>
<ItemStyle Width="100px" HorizontalAlign="Right"></ItemStyle> <ItemStyle Width="100px" HorizontalAlign="Right"></ItemStyle>
</asp:TemplateField> </asp:TemplateField>
<asp:BoundField HeaderText="Sección Alm" ReadOnly="true" DataField="SeccionAlmacen" ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Center" />
<asp:BoundField HeaderText="Serie" ReadOnly="true" DataField="Serie" ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Center" />
<asp:BoundField HeaderText="Lote" ReadOnly="true" DataField="Lote" ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Center" />
<asp:BoundField HeaderText="Caducidad" ReadOnly="true" DataField="FechaCaducidad" ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Center" />
<asp:TemplateField> <asp:TemplateField>
<EditItemTemplate> <EditItemTemplate>
<asp:Label ID="LbTotal" runat="server" /> <asp:Label ID="LbTotal" runat="server" />

View File

@@ -100,6 +100,11 @@ Partial Class Inventarios_Consignaciones
dt.Columns.Add("EstatusExistencia") dt.Columns.Add("EstatusExistencia")
dt.Columns.Add("CveMovimientoDetalle") dt.Columns.Add("CveMovimientoDetalle")
dt.Columns.Add("SeccionAlmacen")
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("CveAlmacen") dt.Columns.Add("CveAlmacen")
dt.Columns.Add("Almacen") dt.Columns.Add("Almacen")
@@ -145,7 +150,7 @@ Partial Class Inventarios_Consignaciones
DdlProveedorFiltro.SelectedText = "Seleccione el Proveedor" DdlProveedorFiltro.SelectedText = "Seleccione el Proveedor"
'Llenar el dropdownlist de Productos y servicios 'Llenar el dropdownlist de Productos y servicios
If UsuarioActual.Empresa.Funcionalidad(105) = "" Then If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then
DdlProducto.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa) DdlProducto.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa)
DdlProducto.DataBind() DdlProducto.DataBind()
DdlProducto.Items.Insert(0, New ListItem("----", "-1")) DdlProducto.Items.Insert(0, New ListItem("----", "-1"))
@@ -584,6 +589,11 @@ Partial Class Inventarios_Consignaciones
Dim CveClasificacion As Integer Dim CveClasificacion As Integer
Dim PSCodigo = "" Dim PSCodigo = ""
Dim CveSeccionAlmacen As Integer = DdlSeccionAlmacen.SelectedValue.ToEntero
Dim Serie As String = If(TxtSerie.Text = "", "-1", TxtSerie.Text)
Dim Lote As String = If(TxtLote.Text = "", "-1", TxtLote.Text)
Dim Caducidad As String = If(TxtCaducidad.Text = "", "-1", TxtCaducidad.Text)
Dim dr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=PSSelected).FiltroPrimero("") Dim dr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=PSSelected).FiltroPrimero("")
If dr IsNot Nothing Then If dr IsNot Nothing Then
@@ -606,8 +616,13 @@ Partial Class Inventarios_Consignaciones
registro.Item("PU") = TxtPU.Text.ToDouble registro.Item("PU") = TxtPU.Text.ToDouble
registro.Item("PUExtranjero") = TxtPU.Text.ToDouble registro.Item("PUExtranjero") = TxtPU.Text.ToDouble
registro.Item("CveSeccionAlmacen") = CveSeccionAlmacen
registro.Item("Serie") = Serie
registro.Item("Lote") = Lote
registro.Item("FechaCaducidad") = Caducidad
registro.Item("Total") = TxtCantidad.Text.ToDouble * TxtPU.Text.ToDouble registro.Item("Total") = TxtCantidad.Text.ToDouble * TxtPU.Text.ToDouble
DtMovimientos.Rows.Add(registro) DtMovimientos.Rows.Add(registro)
GvDatos.DataSource = DtMovimientos GvDatos.DataSource = DtMovimientos
@@ -1530,7 +1545,40 @@ Partial Class Inventarios_Consignaciones
End Sub End Sub
#End Region #End Region
#Region "Columnas Opcionales en PS"
Protected Sub DdlProducto_Click(sender As Object, e As EventArgs) Handles DdlProducto.SelectedIndexChanged
If DdlProducto.SelectedValue.ToEntero > 0 Then
Dim drp As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlProducto.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
ThSerie.Visible = AplicaSerie
TrSerie.Visible = AplicaSerie
'activa seccion
ThSeccion.Visible = AplicaSeccion
TrSeccion.Visible = AplicaSeccion
'activa lote
ThLote.Visible = AplicaLote
TrLote.Visible = AplicaLote
'activa caducidad
ThCaducidad.Visible = AplicaCaducidad
TrCaducidad.Visible = AplicaCaducidad
Else
TxtSerie.Visible = False
End If
UpDatos.Update()
End If
End Sub
#End Region

View File

@@ -149,6 +149,7 @@
</div> </div>
<div class="caption uppercase" style="position: relative;"> <div class="caption uppercase" style="position: relative;">
<i class="fa fa-info-circle"></i>Información del movimiento <i class="fa fa-info-circle"></i>Información del movimiento
</div> </div>
</div> </div>
<div class="portlet-body" <%= IIf(chkexpand.Checked = True, "", "style='display:none;'")%>> <div class="portlet-body" <%= IIf(chkexpand.Checked = True, "", "style='display:none;'")%>>
@@ -257,7 +258,6 @@
</div> </div>
<label class="col-md-1 truncate" style="width: 110px"></label> <label class="col-md-1 truncate" style="width: 110px"></label>
<div class="col-md-2"> <div class="col-md-2">
</div> </div>
</div> </div>
<div class="row" id="divGuia" runat="server" visible="False"> <div class="row" id="divGuia" runat="server" visible="False">
@@ -278,6 +278,7 @@
<div class="row"> <div class="row">
<label class="col-md-1 truncate" style="width: 110px"> <label class="col-md-1 truncate" style="width: 110px">
Observaciones: Observaciones:
</label> </label>
<div class="col-md-5"> <div class="col-md-5">
<asp:TextBox ID="TxtObservaciones" TextMode="MultiLine" Rows="2" CssClass="form-control input-sm" runat="server" MaxLength="232"></asp:TextBox> <asp:TextBox ID="TxtObservaciones" TextMode="MultiLine" Rows="2" CssClass="form-control input-sm" runat="server" MaxLength="232"></asp:TextBox>
@@ -334,6 +335,7 @@
</div> </div>
<div class="caption uppercase" style="position: relative;"> <div class="caption uppercase" style="position: relative;">
<i class="fa fa-info-circle"></i>Agregar Producto <i class="fa fa-info-circle"></i>Agregar Producto
</div> </div>
</div> </div>
<div class="portlet-body"> <div class="portlet-body">
@@ -408,12 +410,14 @@
</div> </div>
<div class="caption uppercase" style="position: relative;"> <div class="caption uppercase" style="position: relative;">
<i class="fa fa-info-circle"></i>Información de registro <i class="fa fa-info-circle"></i>Información de registro
</div> </div>
</div> </div>
<div class="portlet-body"> <div class="portlet-body">
<div class="row"> <div class="row">
<label class="col-md-3 truncate"> <label class="col-md-3 truncate">
Usuario: Usuario:
</label> </label>
<div class="col-md-6"> <div class="col-md-6">
<asp:Label ID="LblUsuarioRegistro" runat="server"></asp:Label> <asp:Label ID="LblUsuarioRegistro" runat="server"></asp:Label>
@@ -423,6 +427,7 @@
<div class="row" style="margin-top: 10px;"> <div class="row" style="margin-top: 10px;">
<label class="col-md-3 truncate"> <label class="col-md-3 truncate">
Fecha: Fecha:
</label> </label>
<div class="col-md-6"> <div class="col-md-6">
<asp:Label ID="LblFechaRegistro" runat="server"></asp:Label> <asp:Label ID="LblFechaRegistro" runat="server"></asp:Label>
@@ -431,6 +436,7 @@
<div class="row" style="margin-top: 10px;"> <div class="row" style="margin-top: 10px;">
<label class="col-md-3 truncate"> <label class="col-md-3 truncate">
Referencia: Referencia:
</label> </label>
<div class="col-md-6"> <div class="col-md-6">
<asp:HyperLink ID="HplCompra" Target="_blank" runat="server" Visible="False" CssClass="Texto">Ver Compra</asp:HyperLink> <asp:HyperLink ID="HplCompra" Target="_blank" runat="server" Visible="False" CssClass="Texto">Ver Compra</asp:HyperLink>
@@ -443,6 +449,7 @@
<div class="row" runat="server" id="RowConsignacion" visible="false" style="margin-top: 10px;"> <div class="row" runat="server" id="RowConsignacion" visible="false" style="margin-top: 10px;">
<label class="col-md-3 truncate"> <label class="col-md-3 truncate">
Consignación: Consignación:
</label> </label>
<div class="col-md-6"> <div class="col-md-6">
<asp:HyperLink ID="HLConsignacion" Target="_blank" NavigateUrl="#" Text="" runat="server" /> <asp:HyperLink ID="HLConsignacion" Target="_blank" NavigateUrl="#" Text="" runat="server" />
@@ -452,6 +459,7 @@
<div class="row" runat="server" id="RowTipoCambio" visible="false" style="margin-top: 10px;"> <div class="row" runat="server" id="RowTipoCambio" visible="false" style="margin-top: 10px;">
<label class="col-md-3 truncate"> <label class="col-md-3 truncate">
Tipo Cambio: Tipo Cambio:
</label> </label>
<div class="col-md-6"> <div class="col-md-6">
<asp:Label Text="" ID="LbTipoCambio" runat="server" /> <asp:Label Text="" ID="LbTipoCambio" runat="server" />
@@ -460,6 +468,7 @@
<div class="row" runat="server" id="RowMtoRel" visible="false" style="margin-top: 10px;"> <div class="row" runat="server" id="RowMtoRel" visible="false" style="margin-top: 10px;">
<label class="col-md-3 truncate"> <label class="col-md-3 truncate">
Mto. Rel.: Mto. Rel.:
</label> </label>
<div class="col-md-6"> <div class="col-md-6">
<asp:HyperLink ID="lnkMtoRelaioando" CssClass="Texto" runat="server" Target="_blank">ver</asp:HyperLink> <asp:HyperLink ID="lnkMtoRelaioando" CssClass="Texto" runat="server" Target="_blank">ver</asp:HyperLink>
@@ -477,6 +486,7 @@
</div> </div>
<div class="caption uppercase" style="position: relative;"> <div class="caption uppercase" style="position: relative;">
<i class="fa fa-info-circle"></i>Tipo de Cambio <i class="fa fa-info-circle"></i>Tipo de Cambio
</div> </div>
</div> </div>
<div class="portlet-body"> <div class="portlet-body">
@@ -565,7 +575,7 @@
<asp:Button ID="BtnVinculaAFEdit" ClientIDMode="Static" OnClick="BtnVinculaAFEdit_Click" Style="display: none;" runat="server" /> <asp:Button ID="BtnVinculaAFEdit" ClientIDMode="Static" OnClick="BtnVinculaAFEdit_Click" Style="display: none;" runat="server" />
<asp:HiddenField runat="server" ID="HdnCodAFEdit" Value="-1" ClientIDMode="Static" /> <asp:HiddenField runat="server" ID="HdnCodAFEdit" Value="-1" ClientIDMode="Static" />
<asp:GridView ID="GvM" runat="server" GridLines="none" CssClass="tabla_correcto grides Widthall mysmallbtn" ShowHeader="True" EmptyDataText="Aún no hay registros." DataKeyNames="No,CveMovimientoDetalle,Cantidad,CvePS,CveUM,PU,Observaciones,CodigoPS,UnidadMedida,CveAF,Serie,CveSeccionAlmacen" AutoGenerateColumns="False" AllowPaging="False" ShowFooter="True" ShowHeaderWhenEmpty="True"> <asp:GridView ID="GvM" runat="server" GridLines="none" CssClass="tabla_correcto grides Widthall mysmallbtn" ShowHeader="True" EmptyDataText="Aún no hay registros." DataKeyNames="No,CveMovimientoDetalle,Cantidad,CvePS,CveUM,PU,Observaciones,CodigoPS,UnidadMedida,CveAF,Serie,Lote,FechaCaducidad,CveSeccionAlmacen" AutoGenerateColumns="False" AllowPaging="False" ShowFooter="True" ShowHeaderWhenEmpty="True">
<Columns> <Columns>
<asp:TemplateField HeaderText="" ItemStyle-Font-Size="6pt"> <asp:TemplateField HeaderText="" ItemStyle-Font-Size="6pt">
<EditItemTemplate> <EditItemTemplate>
@@ -671,7 +681,7 @@
<ItemStyle Width="90px" HorizontalAlign="Right"></ItemStyle> <ItemStyle Width="90px" HorizontalAlign="Right"></ItemStyle>
<FooterStyle HorizontalAlign="Right"></FooterStyle> <FooterStyle HorizontalAlign="Right"></FooterStyle>
</asp:TemplateField> </asp:TemplateField>
<asp:TemplateField HeaderText="Caducidad" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="10%" Visible="false"> <asp:TemplateField HeaderText="Caducidad" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="10%" Visible="false">
<ItemTemplate> <ItemTemplate>
<asp:Literal ID="LbCaducidad" runat="server" Text='<%# Eval("FechaCaducidad", "{0:d}") %>'></asp:Literal> <asp:Literal ID="LbCaducidad" runat="server" Text='<%# Eval("FechaCaducidad", "{0:d}") %>'></asp:Literal>
</ItemTemplate> </ItemTemplate>
@@ -860,6 +870,7 @@
<div class="row"> <div class="row">
<div class="col-md-5" style="text-align: right;"> <div class="col-md-5" style="text-align: right;">
Cantidad Cantidad
</div> </div>
<div class="col-md-7"> <div class="col-md-7">
<asp:TextBox ClientIDMode="Static" ID="TxtCantidadEspecial" Text="" runat="server"></asp:TextBox> <asp:TextBox ClientIDMode="Static" ID="TxtCantidadEspecial" Text="" runat="server"></asp:TextBox>
@@ -1023,7 +1034,7 @@
</div> </div>
<div id="DivModalCambioFisico" class="modal ADS fade" role="dialog"> <div id="DivModalCambioFisico" class="modal ADS fade" role="dialog">
<div class="modal-dialog modal-lg"> <div class="modal-dialog modal-lg" style="width: 90%">
<asp:UpdatePanel runat="server" class="modal-content" ID="UpModalInventarioFisico" UpdateMode="Conditional"> <asp:UpdatePanel runat="server" class="modal-content" ID="UpModalInventarioFisico" UpdateMode="Conditional">
<ContentTemplate> <ContentTemplate>
<div class="modal-header "> <div class="modal-header ">
@@ -1034,7 +1045,7 @@
<div class="modal-body"> <div class="modal-body">
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
<div> <div style="text-align: center">
<label for="<%= DdlAlmacenInventarioFisico.ClientID.ToString()%>">Almacen:</label> <label for="<%= DdlAlmacenInventarioFisico.ClientID.ToString()%>">Almacen:</label>
<asp:DropDownList ID="DdlAlmacenInventarioFisico" runat="server" DataTextField="Almacen" DataValueField="CveAlmacen" Width="60%" CssClass="form-control input-sm select2me" AppendDataBoundItems="true"></asp:DropDownList> <asp:DropDownList ID="DdlAlmacenInventarioFisico" runat="server" DataTextField="Almacen" DataValueField="CveAlmacen" Width="60%" CssClass="form-control input-sm select2me" AppendDataBoundItems="true"></asp:DropDownList>
<%--<asp:RequiredFieldValidator ID="RFVAlmacenInvFisico" runat="server" InitialValue="-1" ControlToValidate="DdlAlmacenInventarioFisico" CssClass="help-block errorimput" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Almacen''</b> es necesario, por favor ingréselo."></asp:RequiredFieldValidator>--%> <%--<asp:RequiredFieldValidator ID="RFVAlmacenInvFisico" runat="server" InitialValue="-1" ControlToValidate="DdlAlmacenInventarioFisico" CssClass="help-block errorimput" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Almacen''</b> es necesario, por favor ingréselo."></asp:RequiredFieldValidator>--%>
@@ -1045,7 +1056,7 @@
<label class="col-md-1 truncate" style="width: 120px">Fecha:</label> <label class="col-md-1 truncate" style="width: 120px">Fecha:</label>
<div class="col-md-2"> <div class="col-md-2">
<div style="display: inline-block; vertical-align: text-bottom;"> <div style="display: inline-block; vertical-align: text-bottom;">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 120px !important; padding: 0px;"> <div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 120px !important; padding: 0px; text-align: center">
<asp:TextBox ID="TxtFechaInvFisico" runat="server" CssClass="form-control" CausesValidation="true" Style="width: 118px" MaxLength="10"></asp:TextBox> <asp:TextBox ID="TxtFechaInvFisico" runat="server" CssClass="form-control" CausesValidation="true" Style="width: 118px" MaxLength="10"></asp:TextBox>
<span class="input-group-btn "> <span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaInvFisico" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton> <asp:LinkButton ID="ImgFechaInvFisico" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
@@ -1062,7 +1073,7 @@
<div class="col-md-12"> <div class="col-md-12">
<label class="col-md-1 truncate" style="width: 120px">Descripción:</label> <label class="col-md-1 truncate" style="width: 120px">Descripción:</label>
<div class="col-md-12"> <div class="col-md-12">
<asp:TextBox ID="TxtIFDescripcion" runat="server" Width="70%" CssClass="form-control input-sm"></asp:TextBox> <asp:TextBox ID="TxtIFDescripcion" runat="server" Width="100%" CssClass="form-control input-sm"></asp:TextBox>
</div> </div>
</div> </div>
@@ -1089,51 +1100,82 @@
<div class="portlet-body"> <div class="portlet-body">
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
<table border="0" class="Widthall grides"> <asp:UpdatePanel runat="server" ID="UpEntradaFisico" UpdateMode="Conditional">
<tbody> <ContentTemplate>
<tr class="Titulos">
<th style="width: 63px">Cant</th> <table border="0" class="Widthall grides">
<th style="width: 200px">Producto</th> <tbody>
<th style="width: 63px">Costo P.</th> <tr class="Titulos">
<th style="width: 73px;"></th> <th style="width: 63px">Cant</th>
</tr> <th style="width: 200px">Producto</th>
<tr align="center"> <th style="width: 63px">Costo P.</th>
<td> <th style="width: 10%" runat="server" id="ThSeccionEntrada" visible="false">Sección almacén</th>
<asp:TextBox ID="TxtCantidadInvFisico" CssClass="form-control input-sm" Width="55px" MaxLength="15" runat="server" ValidationGroup="AddPSInvFisico"></asp:TextBox> <th style="width: 10%" runat="server" id="ThSerieEntrada" visible="false">Serie</th>
<ajax:FilteredTextBoxExtender ID="FTECantidadInvFisc" runat="server" TargetControlID="TxtCantidadInvFisico" FilterType="Custom, Numbers" ValidChars="." /> <th style="width: 10%" runat="server" id="ThLoteEntrada" visible="false">Lote</th>
</td> <th style="width: 10%" runat="server" id="ThCaducidadEntrada" visible="false">Caducidad</th>
<td> <th style="width: 73px;"></th>
<div class="psagregar"> </tr>
<ADS:Dropdownlost runat="server" ID="DdlPS" CssStyle="width:100%" CssClassDdl="select2me" DataTextField="PSCodigo" DataValueField="CvePS" /> <tr align="center">
</div> <td>
</td> <asp:TextBox ID="TxtCantidadInvFisico" CssClass="form-control input-sm" Width="55px" MaxLength="15" runat="server" ValidationGroup="AddPSInvFisico"></asp:TextBox>
<td> <ajax:FilteredTextBoxExtender ID="FTECantidadInvFisc" runat="server" TargetControlID="TxtCantidadInvFisico" FilterType="Custom, Numbers" ValidChars="." />
<asp:TextBox ID="TxtCostoPromedio" CssClass="form-control input-sm" runat="server" Width="55px"></asp:TextBox> </td>
<ajax:FilteredTextBoxExtender ID="FTBCostoPromedio" runat="server" TargetControlID="TxtCostoPromedio" FilterType="Custom, Numbers" ValidChars="+-.," /> <td>
</td> <div class="psagregar">
<td align="center"> <ADS:Dropdownlost runat="server" ID="DdlPS" CssStyle="width:100%" CssClassDdl="select2me" DataTextField="PSCodigo" DataValueField="CvePS" />
<asp:LinkButton ID="BtnAgregarEntrada" runat="server" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-plus'></i>" ValidationGroup="AddPSInvFisico" /> </div>
</td> </td>
</tr> <td>
</tbody> <asp:TextBox ID="TxtCostoPromedio" CssClass="form-control input-sm" runat="server" Width="55px"></asp:TextBox>
</table> <ajax:FilteredTextBoxExtender ID="FTBCostoPromedio" runat="server" TargetControlID="TxtCostoPromedio" FilterType="Custom, Numbers" ValidChars="+-.," />
</td>
<td runat="server" id="TrSeccionEntrada" visible="false">
<asp:DropDownList ID="DdlSeccionAlmacenEntrada" DataTextField="Seccion" AppendDataBoundItems="true" DataValueField="CveSeccion" Class="form-control input-sm select2me" Style="width: 95% !important" runat="server" CausesValidation="true">
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList>
</td>
<td runat="server" id="TrSerieEntrada" visible="false">
<asp:TextBox ID="TxtSerieEntrada" runat="server" Width="50px"></asp:TextBox>
</td>
<td runat="server" id="TrLoteEntrada" visible="false">
<asp:TextBox ID="TxtLoteEntrada" runat="server" Width="50px"></asp:TextBox>
</td>
<td runat="server" id="TrCaducidadEntrada" visible="false">
<asp:TextBox ID="TxtCaducidadEntrada" runat="server" Width="50px"></asp:TextBox>
</td>
<td align="center">
<asp:LinkButton ID="BtnAgregarEntrada" runat="server" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-plus'></i>" ValidationGroup="AddPSInvFisico" />
</td>
</tr>
</tbody>
</table>
</ContentTemplate>
</asp:UpdatePanel>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
<asp:GridView ID="GvEntradas" runat="server" GridLines="none" CssClass="tabla_correcto grides Widthall mysmallbtn" AutoGenerateColumns="False" ShowHeaderWhenEmpty="False"> <asp:UpdatePanel runat="server" ID="UpEntradasGv" UpdateMode="Conditional">
<Columns> <ContentTemplate>
<asp:BoundField HeaderText="Cant" ReadOnly="true" DataField="Cantidad" ItemStyle-Width="50px" ItemStyle-HorizontalAlign="Left" /> <asp:GridView ID="GvEntradas" runat="server" GridLines="none" CssClass="tabla_correcto grides Widthall mysmallbtn" AutoGenerateColumns="False" ShowHeaderWhenEmpty="False">
<asp:BoundField HeaderText="Producto" ReadOnly="true" DataField="CodigoPS" ItemStyle-Width="300px" ItemStyle-HorizontalAlign="Left" /> <Columns>
<asp:BoundField HeaderText="Costo P." ReadOnly="true" DataField="PU" ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Center" /> <asp:BoundField HeaderText="Cant" ReadOnly="true" DataField="Cantidad" ItemStyle-Width="50px" ItemStyle-HorizontalAlign="Left" />
<asp:TemplateField ItemStyle-HorizontalAlign="Center" ItemStyle-Width="100px"> <asp:BoundField HeaderText="Producto" ReadOnly="true" DataField="CodigoPS" ItemStyle-Width="300px" ItemStyle-HorizontalAlign="Left" />
<ItemTemplate> <asp:BoundField HeaderText="Costo P." ReadOnly="true" DataField="PU" ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Center" />
<asp:LinkButton ID="LnkRemoveInvFisico" runat="server" AlternateText="Eliminar" OnClick="DeleteRowInvFisicoEntrada" CommandArgument='<%# Eval("No")%>' CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Seguro que desea eliminar el concepto?" data-btn-ok-label="si" /> <asp:BoundField HeaderText="Sección Alm" ReadOnly="true" DataField="SeccionAlmacen" ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Center" />
</ItemTemplate> <asp:BoundField HeaderText="Serie" ReadOnly="true" DataField="Serie" ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Center" />
</asp:TemplateField> <asp:BoundField HeaderText="Lote" ReadOnly="true" DataField="Lote" ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Center" />
</Columns> <asp:BoundField HeaderText="Caducidad" ReadOnly="true" DataField="FechaCaducidad" ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Center" />
</asp:GridView> <asp:TemplateField ItemStyle-HorizontalAlign="Center" ItemStyle-Width="100px">
<ItemTemplate>
<asp:LinkButton ID="LnkRemoveInvFisico" runat="server" AlternateText="Eliminar" OnClick="DeleteRowInvFisicoEntrada" CommandArgument='<%# Eval("No")%>' CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Seguro que desea eliminar el concepto?" data-btn-ok-label="si" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</div> </div>
</div> </div>
</div> </div>
@@ -1157,45 +1199,75 @@
<div class="portlet-body"> <div class="portlet-body">
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
<table border="0" class="Widthall grides"> <asp:UpdatePanel runat="server" ID="UpSalidaFisico" UpdateMode="Conditional">
<tbody> <ContentTemplate>
<tr class="Titulos"> <table border="0" class="Widthall grides">
<th style="width: 63px">Cant</th> <tbody>
<th style="width: 200px">Producto</th> <tr class="Titulos">
<th style="width: 73px;"></th> <th style="width: 63px">Cant</th>
</tr> <th style="width: 200px">Producto</th>
<tr align="center"> <th style="width: 10%" runat="server" id="ThSeccionSalida" visible="false">Sección almacén</th>
<td> <th style="width: 10%" runat="server" id="ThSerieSalida" visible="false">Serie</th>
<asp:TextBox ID="TxtCantidadSalidaInv" CssClass="form-control input-sm" Width="55px" MaxLength="15" runat="server" ValidationGroup="AddPSInvFisicoSalida"></asp:TextBox> <th style="width: 10%" runat="server" id="ThLoteSalida" visible="false">Lote</th>
<ajax:FilteredTextBoxExtender ID="FTECantSalida" runat="server" TargetControlID="TxtCantidadSalidaInv" FilterType="Custom, Numbers" ValidChars="." /> <th style="width: 10%" runat="server" id="ThCaducidadSalida" visible="false">Caducidad</th>
</td> <th style="width: 73px;"></th>
<td> </tr>
<div class="psagregar"> <tr align="center">
<ADS:Dropdownlost runat="server" ID="DdlPSSalida" CssStyle="width:100%" CssClassDdl="select2me" DataTextField="PSCodigo" DataValueField="CvePS" /> <td>
</div> <asp:TextBox ID="TxtCantidadSalidaInv" CssClass="form-control input-sm" Width="55px" MaxLength="15" runat="server" ValidationGroup="AddPSInvFisicoSalida"></asp:TextBox>
</td> <ajax:FilteredTextBoxExtender ID="FTECantSalida" runat="server" TargetControlID="TxtCantidadSalidaInv" FilterType="Custom, Numbers" ValidChars="." />
<td align="center"> </td>
<asp:LinkButton ID="BtnAgregarSalida" runat="server" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-plus'></i>" ValidationGroup="AddPSInvFisicoSalida" /> <td>
</td> <div class="psagregar">
</tr> <ADS:Dropdownlost runat="server" ID="DdlPSSalida" CssStyle="width:100%" CssClassDdl="select2me" DataTextField="PSCodigo" DataValueField="CvePS" />
</tbody> </div>
</table> </td>
<td runat="server" id="TrSeccionSalida" visible="false">
<asp:DropDownList ID="DdlSeccionAlmacenSalida" DataTextField="Seccion" AppendDataBoundItems="true" DataValueField="CveSeccion" Class="form-control input-sm select2me" Style="width: 95% !important" runat="server" CausesValidation="true">
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList>
</td>
<td runat="server" id="TrSerieSalida" visible="false">
<asp:TextBox ID="TxtSerieSalida" runat="server" Width="50px"></asp:TextBox>
</td>
<td runat="server" id="TrLoteSalida" visible="false">
<asp:TextBox ID="TxtLoteSalida" runat="server" Width="50px"></asp:TextBox>
</td>
<td runat="server" id="TrCaducidadSalida" visible="false">
<asp:TextBox ID="TxtCaducidadSalida" runat="server" Width="50px"></asp:TextBox>
</td>
<td align="center">
<asp:LinkButton ID="BtnAgregarSalida" runat="server" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-plus'></i>" ValidationGroup="AddPSInvFisicoSalida" />
</td>
</tr>
</tbody>
</table>
</ContentTemplate>
</asp:UpdatePanel>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
<asp:GridView ID="GvSalidas" runat="server" GridLines="none" CssClass="tabla_correcto grides Widthall mysmallbtn" AutoGenerateColumns="False" ShowHeaderWhenEmpty="False"> <asp:UpdatePanel runat="server" ID="UpSalidaGv" UpdateMode="Conditional">
<Columns> <ContentTemplate>
<asp:BoundField HeaderText="Cant" ReadOnly="true" DataField="Cantidad" ItemStyle-Width="50px" ItemStyle-HorizontalAlign="Left" /> <asp:GridView ID="GvSalidas" runat="server" GridLines="none" CssClass="tabla_correcto grides Widthall mysmallbtn" AutoGenerateColumns="False" ShowHeaderWhenEmpty="False">
<asp:BoundField HeaderText="Producto" ReadOnly="true" DataField="CodigoPS" ItemStyle-Width="300px" ItemStyle-HorizontalAlign="Left" /> <Columns>
<asp:TemplateField ItemStyle-HorizontalAlign="Center" ItemStyle-Width="100px"> <asp:BoundField HeaderText="Cant" ReadOnly="true" DataField="Cantidad" ItemStyle-Width="50px" ItemStyle-HorizontalAlign="Left" />
<ItemTemplate> <asp:BoundField HeaderText="Producto" ReadOnly="true" DataField="CodigoPS" ItemStyle-Width="300px" ItemStyle-HorizontalAlign="Left" />
<asp:LinkButton ID="LnkRemoveInvFisicoSalida" runat="server" AlternateText="Eliminar" OnClick="DeleteRowInvFisicoSalida" CommandArgument='<%# Eval("No")%>' CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Seguro que desea eliminar el concepto?" data-btn-ok-label="si" /> <asp:BoundField HeaderText="Sección Alm" ReadOnly="true" DataField="SeccionAlmacen" ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Center" />
</ItemTemplate> <asp:BoundField HeaderText="Serie" ReadOnly="true" DataField="Serie" ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Center" />
</asp:TemplateField> <asp:BoundField HeaderText="Lote" ReadOnly="true" DataField="Lote" ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Center" />
</Columns> <asp:BoundField HeaderText="Caducidad" ReadOnly="true" DataField="FechaCaducidad" ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Center" />
</asp:GridView> <asp:TemplateField ItemStyle-HorizontalAlign="Center" ItemStyle-Width="100px">
<ItemTemplate>
<asp:LinkButton ID="LnkRemoveInvFisicoSalida" runat="server" AlternateText="Eliminar" OnClick="DeleteRowInvFisicoSalida" CommandArgument='<%# Eval("No")%>' CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Seguro que desea eliminar el concepto?" data-btn-ok-label="si" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</div> </div>
</div> </div>
</div> </div>
@@ -1301,6 +1373,7 @@
</div> </div>
</div> </div>
</div> </div>
</ContentTemplate> </ContentTemplate>
<Triggers> <Triggers>
<asp:PostBackTrigger ControlID="LbDescargarExcelConceptos" /> <asp:PostBackTrigger ControlID="LbDescargarExcelConceptos" />
@@ -1309,7 +1382,7 @@
</div> </div>
</div> </div>
<div id="ModalAgregar" class="modal ADS fade" role="dialog"> <div id="ModalAgregar" class="modal ADS fade" role="dialog">
<asp:UpdatePanel class="modal-dialog" runat="server" ID="UpAgregar" UpdateMode="Conditional"> <asp:UpdatePanel class="modal-dialog" runat="server" ID="UpAgregar" UpdateMode="Conditional">
<ContentTemplate> <ContentTemplate>
<div class="modal-content"> <div class="modal-content">
@@ -1365,6 +1438,10 @@
</asp:DropDownList> </asp:DropDownList>
<label for="<%= DdlSeccionAlmacen.ClientID.ToString()%>">Sección Almacén</label> <label for="<%= DdlSeccionAlmacen.ClientID.ToString()%>">Sección Almacén</label>
</div> </div>
<div runat="server" id="divCaducidad" class="form-group form-md-line-input input-iconright" visible="false">
<asp:TextBox ID="TxtnFechaCaducidad" CssClass="form-control input-sm" runat="server" Width="80px"></asp:TextBox>
<label for="<%= TxtnFechaCaducidad.ClientID.ToString()%>">Fecha Caducidad</label>
</div>
<br /> <br />
<div class="form-group form-md-line-input input-iconright"> <div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtObservacionesdetalle" CssClass="form-control input-sm" runat="server" MaxLength="200"></asp:TextBox> <asp:TextBox ID="TxtObservacionesdetalle" CssClass="form-control input-sm" runat="server" MaxLength="200"></asp:TextBox>

View File

@@ -270,6 +270,7 @@ Partial Class Inventarios_EntradasSalidas
End Set End Set
End Property End Property
#End Region #End Region
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load 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 If CveMovimiento > 0 Then
PermisoVerImportes() PermisoVerImportes()
End If End If
End If End If
End Sub End Sub
@@ -466,6 +468,12 @@ Partial Class Inventarios_EntradasSalidas
DdlSeccionAlmacen.DataSource = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa, -1) DdlSeccionAlmacen.DataSource = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa, -1)
DdlSeccionAlmacen.DataBind() DdlSeccionAlmacen.DataBind()
DdlSeccionAlmacenEntrada.DataSource = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa, -1)
DdlSeccionAlmacenEntrada.DataBind()
DdlSeccionAlmacenSalida.DataSource = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa, -1)
DdlSeccionAlmacenSalida.DataBind()
'Llenar el dropdownlist de monedas 'Llenar el dropdownlist de monedas
DdlMoneda.DataSource = GlobalDTMonedas DdlMoneda.DataSource = GlobalDTMonedas
DdlMoneda.DataBind() DdlMoneda.DataBind()
@@ -1154,13 +1162,17 @@ Partial Class Inventarios_EntradasSalidas
Exit Sub Exit Sub
End If 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() LimpiarAgregar()
txtCantidad.Text = "" txtCantidad.Text = ""
TxtnLote.Text = "" TxtnLote.Text = ""
LblCodigo.Text = "" LblCodigo.Text = ""
TxtnSerie.Text = "" TxtnSerie.Text = ""
TxtnLote.Text = ""
TxtnFechaCaducidad.Text = ""
HdnCodigoAF.Value = "-1" HdnCodigoAF.Value = "-1"
HdnCveActivoFijo.Value = "-1" HdnCveActivoFijo.Value = "-1"
RegistraScript("CodigoAF = "";") RegistraScript("CodigoAF = "";")
@@ -2150,25 +2162,23 @@ Partial Class Inventarios_EntradasSalidas
If dr IsNot Nothing Then If dr IsNot Nothing Then
If CBool(dr("AplicaSerie")) Then If CBool(dr("AplicaSerie")) Then
'LblSerieLote.Visible = True
TxtnSerie.Visible = True TxtnSerie.Visible = True
divSerie.Visible = True divSerie.Visible = True
'TrSerieLote.Visible = True
'TrSerieLote2.Visible = True
End If End If
If CBool(dr("AplicaLote")) Then If CBool(dr("AplicaLote")) Then
TxtnLote.Visible = True TxtnLote.Visible = True
divLote.Visible = True divLote.Visible = True
'TrLote.Visible = True
'TrLote2.Visible = True
End If End If
If CBool(dr("AplicaSeccion")) Then If CBool(dr("AplicaSeccion")) Then
divSeccionAlmacen.Visible = True divSeccionAlmacen.Visible = True
End If End If
If CBool(dr("AplicaCaducidad")) Then
divCaducidad.Visible = True
End If
End If End If
End If End If
@@ -2371,6 +2381,8 @@ Partial Class Inventarios_EntradasSalidas
CveAFEdit = GvRow.DataKey("CveAF").ToEntero CveAFEdit = GvRow.DataKey("CveAF").ToEntero
txtPrecio.Text = GvRow.DataKey("PU").ToDouble.FormatoNumero txtPrecio.Text = GvRow.DataKey("PU").ToDouble.FormatoNumero
TxtnSerie.Text = GvRow.DataKey("Serie") TxtnSerie.Text = GvRow.DataKey("Serie")
TxtnLote.Text = GvRow.DataKey("Lote")
TxtnFechaCaducidad.Text = GvRow.DataKey("FechaCaducidad").ToDate.ToShortDateString
TxtObservacionesdetalle.Text = GvRow.DataKey("Observaciones") TxtObservacionesdetalle.Text = GvRow.DataKey("Observaciones")
DdlSeccionAlmacen.SelectedValueExist(GvRow.DataKey("CveSeccionAlmacen")) DdlSeccionAlmacen.SelectedValueExist(GvRow.DataKey("CveSeccionAlmacen"))
LkAgregarDetalle.Text = "Actualizar" LkAgregarDetalle.Text = "Actualizar"
@@ -2397,6 +2409,8 @@ Partial Class Inventarios_EntradasSalidas
CveAFEdit = GvRow.DataKey("CveAF").ToEntero CveAFEdit = GvRow.DataKey("CveAF").ToEntero
txtPrecio.Text = GvRow.DataKey("PU").ToDouble.FormatoNumero txtPrecio.Text = GvRow.DataKey("PU").ToDouble.FormatoNumero
TxtnSerie.Text = GvRow.DataKey("Serie") TxtnSerie.Text = GvRow.DataKey("Serie")
TxtnLote.Text = GvRow.DataKey("Lote")
TxtnFechaCaducidad.Text = GvRow.DataKey("FechaCaducidad")
TxtObservacionesdetalle.Text = GvRow.DataKey("Observaciones") TxtObservacionesdetalle.Text = GvRow.DataKey("Observaciones")
DdlSeccionAlmacen.SelectedValueExist(GvRow.DataKey("CveSeccionAlmacen")) DdlSeccionAlmacen.SelectedValueExist(GvRow.DataKey("CveSeccionAlmacen"))
Dim Origen As Integer = GlobalDTInvConceptos.FiltroPrimeroValor("Origen", String.Format("CveConcepto = {0}", DdlConcepto.SelectedValue)).ToEntero 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 CodigoPS As String = ""
Dim PS 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") Dim dr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS).FiltroPrimero("", "PS")
If dr IsNot Nothing Then If dr IsNot Nothing Then
CveClasificacion = dr("CveClasificacion").ToString.ToEntero CveClasificacion = dr("CveClasificacion").ToString.ToEntero
@@ -3482,6 +3501,10 @@ Partial Class Inventarios_EntradasSalidas
registro.Item("Total") = Cantidad * CostoPromedio registro.Item("Total") = Cantidad * CostoPromedio
registro.Item("CveClasificacion") = CveClasificacion registro.Item("CveClasificacion") = CveClasificacion
registro.Item("Estatus") = "" registro.Item("Estatus") = ""
registro.Item("CveSeccionAlmacen") = CveSeccionAlmacen
registro.Item("Serie") = Serie
registro.Item("Lote") = Lote
registro.Item("FechaCaducidad") = Caducidad
DtMovimientosEntradaInvFisico.Rows.Add(registro) DtMovimientosEntradaInvFisico.Rows.Add(registro)
CargaGvEntradas(DtMovimientosEntradaInvFisico) CargaGvEntradas(DtMovimientosEntradaInvFisico)
@@ -3492,6 +3515,7 @@ Partial Class Inventarios_EntradasSalidas
Private Sub CargaGvEntradas(DtTemp As DataTable) Private Sub CargaGvEntradas(DtTemp As DataTable)
GvEntradas.DataSource = DtTemp GvEntradas.DataSource = DtTemp
GvEntradas.DataBind() GvEntradas.DataBind()
UpEntradasGv.Update()
End Sub End Sub
Protected Sub DdlPSInvFisico_ValueChanged(sender As Object, e As EventArgs) Handles DdlPS.selectedindexchange 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 CodigoPS As String = ""
Dim PS 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") Dim dr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS).FiltroPrimero("", "PS")
If dr IsNot Nothing Then If dr IsNot Nothing Then
CveClasificacion = dr("CveClasificacion").ToString.ToEntero CveClasificacion = dr("CveClasificacion").ToString.ToEntero
@@ -3578,6 +3607,10 @@ Partial Class Inventarios_EntradasSalidas
registro.Item("Total") = 0 registro.Item("Total") = 0
registro.Item("CveClasificacion") = CveClasificacion registro.Item("CveClasificacion") = CveClasificacion
registro.Item("Estatus") = "" registro.Item("Estatus") = ""
registro.Item("CveSeccionAlmacen") = CveSeccionAlmacen
registro.Item("Serie") = Serie
registro.Item("Lote") = Lote
registro.Item("FechaCaducidad") = Caducidad
DtMovimientosSalidaInvFisico.Rows.Add(registro) DtMovimientosSalidaInvFisico.Rows.Add(registro)
CargaGvSalidas(DtMovimientosSalidaInvFisico) CargaGvSalidas(DtMovimientosSalidaInvFisico)
@@ -3588,6 +3621,7 @@ Partial Class Inventarios_EntradasSalidas
Private Sub CargaGvSalidas(DtTemp As DataTable) Private Sub CargaGvSalidas(DtTemp As DataTable)
GvSalidas.DataSource = DtTemp GvSalidas.DataSource = DtTemp
GvSalidas.DataBind() GvSalidas.DataBind()
UpSalidaGv.Update()
End Sub End Sub
Protected Sub DeleteRowInvFisicoSalida(ByVal sender As Object, ByVal e As EventArgs) 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 'VALIDA EXISTENCIAS SALIDA E INSERTA DETALLES
For Each Dr As DataRow In DtMovimientosSalidaInvFisico.Rows 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 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" Mensaje = "Ocurrió un error al guardar los movimientos de salida"
ErrorMovInv = True ErrorMovInv = True
Exit For Exit For
@@ -3688,7 +3724,9 @@ Partial Class Inventarios_EntradasSalidas
If Not ErrorMovInv Then If Not ErrorMovInv Then
For Each Dr As DataRow In DtMovimientosEntradaInvFisico.Rows For Each Dr As DataRow In DtMovimientosEntradaInvFisico.Rows
ImporteConcepto = Dr("PU").ToString.ToDecimal 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" Mensaje = "Ocurrió un error al guardar los movimientos de entrada"
ErrorMovInv = True ErrorMovInv = True
Exit For Exit For
@@ -3828,6 +3866,75 @@ Partial Class Inventarios_EntradasSalidas
#End Region #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) Private Sub GuardarBitacora(CveVenta As Integer, RutaAdjunto As String, Obser As String)
Dim ObjEventos As New ClsOIEventos() Dim ObjEventos As New ClsOIEventos()
@@ -3916,7 +4023,7 @@ Partial Class Inventarios_EntradasSalidas
End If End If
dt.TableName = "Datos" dt.TableName = "Datos"
Dim DTSeccionesAlmacen As DataTable = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa, -1)
If Not ErrorArchivo Then If Not ErrorArchivo Then
NumRow = 0 NumRow = 0
Dim RowNoEncontrados As String = "" Dim RowNoEncontrados As String = ""
@@ -3928,12 +4035,21 @@ Partial Class Inventarios_EntradasSalidas
'Dim CodigoBarras As String = Row("Codigo Barras").ToString.Trim.ToUpper 'Dim CodigoBarras As String = Row("Codigo Barras").ToString.Trim.ToUpper
Dim ProductoServicio As String = Row("Producto/Servicio").ToString.Trim.ToUpper Dim ProductoServicio As String = Row("Producto/Servicio").ToString.Trim.ToUpper
Dim PrecioUnitario As Decimal = Row("Precio Unitario").ToString.ToDecimal 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 CvePS As Integer = 0
Dim CveUM As Integer = 0 Dim CveUM As Integer = 0
NumRow = NumRow + 1 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 If Codigo <> "" Then
Dim StrArray() As String = GetPS("Codigo", Codigo).Split("|"c) Dim StrArray() As String = GetPS("Codigo", Codigo).Split("|"c)
If StrArray.Length > 0 Then If StrArray.Length > 0 Then
@@ -3974,10 +4090,17 @@ Partial Class Inventarios_EntradasSalidas
txtPrecio.Text = PrecioUnitario.ToString txtPrecio.Text = PrecioUnitario.ToString
ElProductoChange() ElProductoChange()
TxtnSerie.Text = Serie
TxtnLote.Text = Lote
DdlSeccionAlmacen.SelectedValue = CveSeccionAlmacen.ToString
TxtnFechaCaducidad.Text = If(Caducidad = "", MinFecha.ToString, Caducidad)
AgregarPS() AgregarPS()
txtPrecio.Text = "" txtPrecio.Text = ""
DdlUnidad.SelectedItem.Text = "" DdlUnidad.SelectedItem.Text = ""
TxtnSerie.Text = ""
TxtnLote.Text = ""
TxtnFechaCaducidad.Text = ""
DdlSeccionAlmacen.SelectedValue = "-1"
NumAgregados = NumAgregados + 1 NumAgregados = NumAgregados + 1
End If End If
@@ -4017,7 +4140,8 @@ Partial Class Inventarios_EntradasSalidas
Private Function GetPS(Opt As String, Valor As String) As String Private Function GetPS(Opt As String, Valor As String) As String
Dim StrReturn As String = String.Empty Dim StrReturn As String = String.Empty
Dim CvePS As Integer = 0 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 If CvePS > 0 Then
StrReturn = "True|" & CvePS.ToString StrReturn = "True|" & CvePS.ToString
Else Else
@@ -4200,6 +4324,8 @@ Partial Class Inventarios_EntradasSalidas
ElProductoChange() ElProductoChange()
txtPrecio.Text = "" txtPrecio.Text = ""
TxtnSerie.Text = "" TxtnSerie.Text = ""
TxtnLote.Text = ""
TxtnFechaCaducidad.Text = ""
TxtObservacionesdetalle.Text = "" TxtObservacionesdetalle.Text = ""
DdlSeccionAlmacen.SelectedValue = "-1" DdlSeccionAlmacen.SelectedValue = "-1"
LkAgregarDetalle.Text = "Agregar" LkAgregarDetalle.Text = "Agregar"

View File

@@ -463,7 +463,7 @@
<asp:TemplateField HeaderText="Sección Almacén" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="10%" Visible="false"> <asp:TemplateField HeaderText="Sección Almacén" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="10%" Visible="false">
<ItemTemplate> <ItemTemplate>
<asp:DropDownList ID="DdlSeccionAlmacen" DataTextField="Seccion" DataValueField="CveSeccion" CssClass="select2me" Style="width: 85% !important" runat="server" CausesValidation="true" Visible="false"> <asp:DropDownList ID="DdlSeccionAlmacen" DataTextField="SeccionAlmacen" DataValueField="CveSeccionAlmacen" CssClass="select2me" Style="width: 85% !important" runat="server" CausesValidation="true" Visible="false">
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem> <asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList> </asp:DropDownList>
</ItemTemplate> </ItemTemplate>
@@ -835,10 +835,11 @@
<td> <td>
<asp:DropDownList ID="DdlEstatus" runat="server" Class="table-group-action-input form-control input-inline input-sm select2me" Width="200px"> <asp:DropDownList ID="DdlEstatus" runat="server" Class="table-group-action-input form-control input-inline input-sm select2me" Width="200px">
<%-- <asp:ListItem Selected="False" Text="Seleccione" Value="-1"></asp:ListItem>--%> <%-- <asp:ListItem Selected="False" Text="Seleccione" Value="-1"></asp:ListItem>--%>
<asp:ListItem Selected="True" Text="En Proceso" Value="1"></asp:ListItem> <asp:ListItem Selected="True" Text="Pendiente" Value="1"></asp:ListItem>
<asp:ListItem Selected="False" Text="Confirmado por Proveedor" Value="2"></asp:ListItem> <asp:ListItem Selected="False" Text="En Proceso" Value="2"></asp:ListItem>
<asp:ListItem Selected="False" Text="Entregado" Value="3"></asp:ListItem> <asp:ListItem Selected="False" Text="Entregado" Value="3"></asp:ListItem>
<asp:ListItem Selected="False" Text="Confirmado por Cliente" Value="4"></asp:ListItem> <asp:ListItem Selected="False" Text="Reasignar Nueva Entrega" Value="4"></asp:ListItem>
<asp:ListItem Selected="False" Text="Directo a Clientes" Value="5"></asp:ListItem>
</asp:DropDownList> </asp:DropDownList>
<%-- <asp:RequiredFieldValidator ID="RFVDdlEstatus" runat="server" ControlToValidate="DdlEstatus" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Estatus''</b> es necesario." InitialValue="-1" ValidationGroup="GrpCrearGuia"></asp:RequiredFieldValidator> <%-- <asp:RequiredFieldValidator ID="RFVDdlEstatus" runat="server" ControlToValidate="DdlEstatus" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Estatus''</b> es necesario." InitialValue="-1" ValidationGroup="GrpCrearGuia"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEDdlEstatus" runat="server" HighlightCssClass="vco" TargetControlID="RFVDdlEstatus" Width="250px"></ajax:ValidatorCalloutExtender>--%> <ajax:ValidatorCalloutExtender ID="VCEDdlEstatus" runat="server" HighlightCssClass="vco" TargetControlID="RFVDdlEstatus" Width="250px"></ajax:ValidatorCalloutExtender>--%>

View File

@@ -509,7 +509,7 @@ Partial Class Inventarios_EntregaAlmacen
TipoEntrega = 1 TipoEntrega = 1
BtnGuardar.Visible = True 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 If UsuarioActual.CveSubProyecto = 8804 Then
StrAlmacenes = "CveTipoAlmacen IN (1,2,12)" StrAlmacenes = "CveTipoAlmacen IN (1,2,12)"
@@ -714,6 +714,9 @@ Partial Class Inventarios_EntregaAlmacen
CveAlmacenTraspasoDestino = DtDatos.Rows(0)("CveAlmacenDestino").ToString.ToEntero CveAlmacenTraspasoDestino = DtDatos.Rows(0)("CveAlmacenDestino").ToString.ToEntero
CveAlmacenTraspasoOrigen = DtDatos.Rows(0)("CveAlmacenOrigen").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 If DtDatos.SUM("CantidadS") <= 0 Then
GvDatos.CssClass = "table table-striped table-hover Widthall ScrollAD gvInventario gvEscondeColumna" 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)) DtDatos.Columns.Add("CveSeccion", GetType(Integer))
End If End If
If Not DtDatos.Columns.Contains("Lote") Then
DtDatos.Columns.Add("Lote", GetType(String))
End If
If Not DtDatos.Columns.Contains("FechaCaducidad") Then If Not DtDatos.Columns.Contains("FechaCaducidad") Then
DtDatos.Columns.Add("FechaCaducidad", GetType(Date)) DtDatos.Columns.Add("FechaCaducidad", GetType(Date))
End If End If
@@ -1653,9 +1660,20 @@ Partial Class Inventarios_EntregaAlmacen
DtTraspasos.Columns.Add("FolioSalida", GetType(Integer)) DtTraspasos.Columns.Add("FolioSalida", GetType(Integer))
DtTraspasos.Columns.Add("CveMovimientoEntrada", GetType(Integer)) DtTraspasos.Columns.Add("CveMovimientoEntrada", GetType(Integer))
DtTraspasos.Columns.Add("FolioEntrada", 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 Try
'VALIDA EXISTENCIA 2 'VALIDA EXISTENCIA 2
If TipoMovimiento = 1 Then If TipoMovimiento = 1 Then
@@ -1710,13 +1728,240 @@ Partial Class Inventarios_EntregaAlmacen
'' TERMINA: VALIDACIONES '' 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 '' COMIENZA: APARTADOS
Dim CantidadPendiente As Decimal = 0 Dim CantidadPendiente As Decimal = 0
Dim CantidadSaldo 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 If TipoMovimiento = 1 Then ' SI ES DEVOLUCION NO APLICA APARTADO
' SALIDA POR TRASPASO DE LOS ALMACENES DE APARTADO ' SALIDA POR TRASPASO DE LOS ALMACENES DE APARTADO
For Each Dr As DataRow In DtDatos.Rows For Each Dr As DataRow In DtDatos.Rows
@@ -1749,6 +1994,8 @@ Partial Class Inventarios_EntregaAlmacen
DrMovto("CveAlmacen") = Dr2("CveAlmacen").ToString.ToEntero DrMovto("CveAlmacen") = Dr2("CveAlmacen").ToString.ToEntero
DrMovto("CveMovimientoSalida") = CveMovimientoSalida DrMovto("CveMovimientoSalida") = CveMovimientoSalida
DrMovto("FolioSalida") = FolioSalida DrMovto("FolioSalida") = FolioSalida
DrMovto("CveTipoAlmacen") = 9
DrMovto("CveConceptoMovimientoSalida") = 8
DtTraspasos.Rows.Add(DrMovto) DtTraspasos.Rows.Add(DrMovto)
End If End If
@@ -1800,6 +2047,8 @@ Partial Class Inventarios_EntregaAlmacen
DrMovto("CveAlmacen") = Dr2("CveAlmacen").ToString.ToEntero DrMovto("CveAlmacen") = Dr2("CveAlmacen").ToString.ToEntero
DrMovto("CveMovimientoSalida") = CveMovimientoSalida DrMovto("CveMovimientoSalida") = CveMovimientoSalida
DrMovto("FolioSalida") = FolioSalida DrMovto("FolioSalida") = FolioSalida
DrMovto("CveTipoAlmacen") = 9
DrMovto("CveConceptoMovimientoSalida") = 8
DtTraspasos.Rows.Add(DrMovto) DtTraspasos.Rows.Add(DrMovto)
End If End If
@@ -1849,6 +2098,8 @@ Partial Class Inventarios_EntregaAlmacen
DrMovto("CveAlmacen") = Dr1("CveAlmacen").ToString.ToEntero DrMovto("CveAlmacen") = Dr1("CveAlmacen").ToString.ToEntero
DrMovto("CveMovimientoSalida") = CveMovimientoSalida DrMovto("CveMovimientoSalida") = CveMovimientoSalida
DrMovto("FolioSalida") = FolioSalida DrMovto("FolioSalida") = FolioSalida
DrMovto("CveTipoAlmacen") = 9
DrMovto("CveConceptoMovimientoSalida") = 8
DtTraspasos.Rows.Add(DrMovto) DtTraspasos.Rows.Add(DrMovto)
End If End If
@@ -1885,7 +2136,7 @@ Partial Class Inventarios_EntregaAlmacen
'ENTRADA POR TRASPASO AL ALMACEN GENERAL 'ENTRADA POR TRASPASO AL ALMACEN GENERAL
If Not ErrorMovInv Then 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 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, 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 '' TERMINA: APARTADOS
' COMIENZA: GARANTIAS ' 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 CveAlmacenGarantia As Integer = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 6).FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto={CveSubProyecto}").ToEntero()
Dim DtGarantias As DataTable = Nothing Dim DtGarantias As DataTable = Nothing
@@ -1950,9 +2201,68 @@ Partial Class Inventarios_EntregaAlmacen
End If End If
' TERMINA: GARANTIAS ' 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
If Not ErrorMovInv Then '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
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 Dim ConceptoMovimiento = 3
ConceptoMovimiento = If(TipoMovimiento = 1, ConceptoMovimiento, 18) ConceptoMovimiento = If(TipoMovimiento = 1, ConceptoMovimiento, 18)
ConceptoMovimiento = If(CveAlmacenTraspasoDestino > 0, 8, ConceptoMovimiento) ConceptoMovimiento = If(CveAlmacenTraspasoDestino > 0, 8, ConceptoMovimiento)
@@ -1992,7 +2302,7 @@ Partial Class Inventarios_EntregaAlmacen
If CveMovimiento > 0 Then If CveMovimiento > 0 Then
'SACA LO DE TRASPASOS - APARTADO '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 CveMovimientoSalida = Dr1("CveMovimientoEntrada").ToString.ToEntero
If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
If ObjInventario.DtResultados.Rows.Count = 0 Then If ObjInventario.DtResultados.Rows.Count = 0 Then
@@ -2019,7 +2329,7 @@ Partial Class Inventarios_EntregaAlmacen
CantidadPendiente = 0 CantidadPendiente = 0
Dim Cont As Integer = 0 Dim Cont As Integer = 0
For Each Dr As DataRow In DtDatos.Rows 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 If CantidadPendiente > 0 Then
Dim PU As Decimal = 0 Dim PU As Decimal = 0
@@ -2029,7 +2339,7 @@ Partial Class Inventarios_EntregaAlmacen
If DtDetalle.Rows.Count > 0 Then If DtDetalle.Rows.Count > 0 Then
For Each Dr1 As DataRow In DtDetalle.Rows For Each Dr1 As DataRow In DtDetalle.Rows
If TipoMovimiento = 2 AndAlso DtExistencias IsNot Nothing Then 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 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 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 Else
ErrorMovInv = True ErrorMovInv = True
End If 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 CveMovimientoEntrada <= 0 Then
If Not ErrorMovInv Then TextoError.AppendFormat("No se pudo generar el movimiento de entrada correctamente")
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
ErrorMovInv = True ErrorMovInv = True
TextoError.AppendFormat("Ocurrió un error al guardar los movimientos de entrada") Else
End If If ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) AndAlso ObjInventario.DtResultados.Rows.Count > 0 Then
End If 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
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
ErrorMovInv = True ErrorMovInv = True
TextoError.AppendFormat("Ocurrió un error al guardar los movimientos de entrada")
Exit For
End If End If
Next
'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 Else
ErrorMovInv = True 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 End If
Else
ErrorMovInv = True
TextoError.AppendFormat("Ocurrió un Error al ingresar las prepolizas.3")
End If End If
Else
ErrorMovInv = True Else 'REGISTRO LA PREPOLIZA DE COSTO VS ALMACEN - SALIDA ALMACEN
TextoError.AppendFormat("Ocurrió un Error al ingresar las prepolizas.4") ErrorMovInv = Not GenerarPrePoliza(ObjInventario, ObjVentas, ObjConta, CveMovimiento, TextoError)
End If End If
End If End If
End If End If
'DEVOLUCION APARTADOS 'DEVOLUCION APARTADOS
If Not ErrorMovInv Then If Not ErrorMovInv Then
If TipoMovimiento = 2 Then If TipoMovimiento = 2 Then
@@ -2409,41 +2623,45 @@ Partial Class Inventarios_EntregaAlmacen
End If End If
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 Catch ex As Exception
ErrorMovInv = True ErrorMovInv = True
OnError("Ocurrió un error al guardar", ex) OnError("Ocurrió un error al guardar", ex)
End Try 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 If Not ErrorMovInv Then
ObjInventario.Commit() ObjInventario.Commit()
@@ -2459,13 +2677,30 @@ Partial Class Inventarios_EntregaAlmacen
Msg.AppendFormat("<br/> <a class=""Texto"" target='_blank' href=""/Compras/PopUpVerFactura.aspx?P={0}"">Imprimir Movimiento</a> ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoEntrada))) Msg.AppendFormat("<br/> <a class=""Texto"" target='_blank' href=""/Compras/PopUpVerFactura.aspx?P={0}"">Imprimir Movimiento</a> ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoEntrada)))
End If End If
If DtTraspasos.Rows.Count > 0 Then If DtTraspasos.FiltraParametros("CveTipoAlmacen=9").Rows.Count > 0 Then
Msg.AppendFormat("<br/><br/> Movimientos de Control (Apartados):") Msg.AppendFormat("<br/><br/> Movimientos de Control (Apartados):")
For Each Dr As DataRow In DtTraspasos.Rows For Each Dr As DataRow In DtTraspasos.Rows
Msg.AppendFormat("<br/>Almacén {0} | Salida por Traspaso: <b><a href=""/Inventarios/EntradasSalidas.aspx?CveMovimiento={1}"" target=""_blank"">{2}</a></b> | Entrada por Traspaso: <b><a href=""/Inventarios/EntradasSalidas.aspx?CveMovimiento={3}"" target=""_blank"">{4}</a></b> ", Dr("Almacen"), Dr("CveMovimientoSalida"), Dr("FolioSalida"), Dr("CveMovimientoEntrada"), Dr("FolioEntrada")) Msg.AppendFormat("<br/>Almacén {0} | Salida por Traspaso: <b><a href=""/Inventarios/EntradasSalidas.aspx?CveMovimiento={1}"" target=""_blank"">{2}</a></b> | Entrada por Traspaso: <b><a href=""/Inventarios/EntradasSalidas.aspx?CveMovimiento={3}"" target=""_blank"">{4}</a></b> ", Dr("Almacen"), Dr("CveMovimientoSalida"), Dr("FolioSalida"), Dr("CveMovimientoEntrada"), Dr("FolioEntrada"))
Next Next
End If End If
If DtTraspasos.FiltraParametros("CveTipoAlmacen=26").Rows.Count > 0 Then
Msg.AppendFormat("<br/><br/> Movimientos de Control (Sin Costo):")
For Each Dr As DataRow In DtTraspasos.FiltraParametros("CveConceptoMovimientoSalida=40").Rows
Msg.AppendFormat("<br/>Almacén {0} | Salida directa de almacen: <b><a href=""/Inventarios/EntradasSalidas.aspx?CveMovimiento={1}"" target=""_blank"">{2}</a></b> ", Dr("Almacen"), Dr("CveMovimientoSalida"), Dr("FolioSalida"), Dr("CveMovimientoEntrada"), Dr("FolioEntrada"))
Next
For Each Dr As DataRow In DtTraspasos.FiltraParametros("CveConceptoMovimientoSalida=8").Rows
Msg.AppendFormat("<br/>Almacén {0} | Salida por Traspaso: <b><a href=""/Inventarios/EntradasSalidas.aspx?CveMovimiento={1}"" target=""_blank"">{2}</a></b> ", Dr("Almacen"), Dr("CveMovimientoSalida"), Dr("FolioSalida"), Dr("CveMovimientoEntrada"), Dr("FolioEntrada"))
Next
End If
If DtDevSinCosto.Rows.Count > 0 Then
Msg.AppendFormat("<br/><br/> Movimientos de Control (Sin Costo):")
For Each Dr As DataRow In DtDevSinCosto.Rows
Msg.AppendFormat("<br/>Almacén {0} | Devolución directa de almacen: <b><a href=""/Inventarios/EntradasSalidas.aspx?CveMovimiento={1}"" target=""_blank"">{2}</a></b> ", Dr("Almacen"), Dr("CveMovimientoEntrada"), Dr("FolioEntrada"))
Next
End If
If CveMovimientoGarantia > 0 Then If CveMovimientoGarantia > 0 Then
Msg.AppendFormat("<br/>Movimiento de Entrada (garantías): <b><a href=""/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}"" target=""_blank"">{1}</a></b>", CveMovimientoGarantia, FolioGarantia) Msg.AppendFormat("<br/>Movimiento de Entrada (garantías): <b><a href=""/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}"" target=""_blank"">{1}</a></b>", CveMovimientoGarantia, FolioGarantia)
Msg.AppendFormat("<br/><a class=""Texto"" target='_blank' href=""/Compras/PopUpVerFactura.aspx?P={0}"">Imprimir Movimiento</a> ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoGarantia))) Msg.AppendFormat("<br/><a class=""Texto"" target='_blank' href=""/Compras/PopUpVerFactura.aspx?P={0}"">Imprimir Movimiento</a> ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoGarantia)))
@@ -2500,6 +2735,109 @@ Partial Class Inventarios_EntregaAlmacen
End Sub 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() Private Sub GuardaTraspaso()
'OBLIGA A SURTIR TODO 'OBLIGA A SURTIR TODO
@@ -2511,6 +2849,40 @@ Partial Class Inventarios_EntregaAlmacen
End If End If
Next 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 'VALIDA TRANSITORIO
If ChkTransitorio.Checked Then If ChkTransitorio.Checked Then
If TxtResponsable.Text.Trim = "" Then If TxtResponsable.Text.Trim = "" Then
@@ -2545,6 +2917,9 @@ Partial Class Inventarios_EntregaAlmacen
For Each gvr As GridViewRow In GvDatos.Rows For Each gvr As GridViewRow In GvDatos.Rows
If gvr.FCCheckBox("cbInv").Checked AndAlso gvr.FCTextBox("TbCantidadF").Text.ToDecimal > 0 Then 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)("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 End If
Index += 1 Index += 1
Next Next
@@ -2636,13 +3011,18 @@ Partial Class Inventarios_EntregaAlmacen
FolioSalida = ObjInventario.Folio FolioSalida = ObjInventario.Folio
If CveMovimientoSalida > 0 Then If CveMovimientoSalida > 0 Then
Dim CantidadPendiente As Decimal = 0 Dim CantidadPendiente As Decimal = 0
Dim CveSeccionAlmacen As Integer = -1
For Each Dr As DataRow In DtDatos.Rows 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"))) 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"))) DtDetalleLote = DtDatosDetalleLote.FiltraParametros(String.Format("ConsecId = {0} AND FueTraspaso IS NULL", Dr("Consec")))
If DtDetalle.Rows.Count > 0 Then 'SI FUE POR SERIE If DtDetalle.Rows.Count > 0 Then 'SI FUE POR SERIE
For Each Dr1 As DataRow In DtDetalle.Rows 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 ErrorMovInv = True
TextoError = "Ocurrió un error al procesar los conceptos con serie. Por favor vuelva a intentar." TextoError = "Ocurrió un error al procesar los conceptos con serie. Por favor vuelva a intentar."
Exit For Exit For
@@ -2650,14 +3030,14 @@ Partial Class Inventarios_EntregaAlmacen
Next Next
ElseIf DtDetalleLote.Rows.Count > 0 Then 'SI FUE POR LOTE BATCH ElseIf DtDetalleLote.Rows.Count > 0 Then 'SI FUE POR LOTE BATCH
For Each Dr1 As DataRow In DtDetalleLote.Rows 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 ErrorMovInv = True
TextoError = "Ocurrió un error al procesar los conceptos con serie. Por favor vuelva a intentar." TextoError = "Ocurrió un error al procesar los conceptos con serie. Por favor vuelva a intentar."
Exit For Exit For
End If End If
Next Next
Else 'NORMAL 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 ErrorMovInv = True
TextoError = "Ocurrió un error al procesar los conceptos de salida. Por favor vuelva a intentar." TextoError = "Ocurrió un error al procesar los conceptos de salida. Por favor vuelva a intentar."
Exit For Exit For
@@ -2682,8 +3062,15 @@ Partial Class Inventarios_EntregaAlmacen
FolioEntrada = ObjInventario.Folio FolioEntrada = ObjInventario.Folio
If CveMovimientoEntrada > 0 Then If CveMovimientoEntrada > 0 Then
If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
Dim CveSeccionAlmacen As Integer = -1
For Each Dr As DataRow In ObjInventario.DtResultados.Rows 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 ErrorMovInv = True
TextoError = "Ocurrió un error al guardar los movimientos de entrada" TextoError = "Ocurrió un error al guardar los movimientos de entrada"
Exit For Exit For
@@ -2713,13 +3100,15 @@ Partial Class Inventarios_EntregaAlmacen
Dim FechaEstimada As String = If(TxtFechaEstimada.Text = "", "-1", TxtFechaEstimada.Text) Dim FechaEstimada As String = If(TxtFechaEstimada.Text = "", "-1", TxtFechaEstimada.Text)
Dim NoCajas As Integer = TxtNoCajas.Text.ToEntero() Dim NoCajas As Integer = TxtNoCajas.Text.ToEntero()
Dim Observaciones As String = TxtObservacionesPaqInterna.Text 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 CvePaqueteriaGuia > 0 Then
If CveVentaSurtir > 0 OrElse CveSubProyecto > 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 End If
If ErrorMovInv Then If ErrorMovInv Then
Alert("Error en el paqueteria guia detalle", TipoMensaje.MsgError) Alert("Error en el paqueteria guia detalle", TipoMensaje.MsgError)
End If End If

View File

@@ -70,7 +70,7 @@
</div> </div>
<div class="portlet-body rowpadding"> <div class="portlet-body rowpadding">
<asp:GridView ID="GvPaqueteriasGuias" runat="server" AutoGenerateColumns="False" <asp:GridView ID="GvPaqueteriasGuias" runat="server" AutoGenerateColumns="False"
DataKeyNames="CvePaqueteriaGuia,Folio,FechaIng,Nombre,Contacto" DataKeyNames="CvePaqueteriaGuia,Folio,FechaIng,Nombre,Contacto,Estatus"
EmptyDataText="No se encontraron registros" ToolTip="Listado de Temas" EmptyDataText="No se encontraron registros" ToolTip="Listado de Temas"
CssClass="table table-striped table-advance table-hover Widthall ScrollAD" CssClass="table table-striped table-advance table-hover Widthall ScrollAD"
data-sort="true" data-sort="true"
@@ -89,6 +89,7 @@
</ItemTemplate> </ItemTemplate>
</asp:TemplateField> </asp:TemplateField>
<asp:BoundField HeaderText="Estatus" DataField="Estatus" HeaderStyle-Width="25px" ItemStyle-HorizontalAlign="Center" />
<asp:TemplateField HeaderText="Fecha" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="10%" HeaderStyle-Width="10%"> <asp:TemplateField HeaderText="Fecha" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="10%" HeaderStyle-Width="10%">
<ItemTemplate> <ItemTemplate>
&nbsp;<asp:Literal ID="LblFechaIng" runat="server" Text='<%# Eval("FechaIng", "{0:dd/MM/yyyy}") %>'></asp:Literal> &nbsp;<asp:Literal ID="LblFechaIng" runat="server" Text='<%# Eval("FechaIng", "{0:dd/MM/yyyy}") %>'></asp:Literal>

View File

@@ -86,7 +86,8 @@ public partial class Inventarios_EntregasPorRealizar : ClsPaginas
private void CargarPersonal() 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.DataBind();
DdlUsuario.Items.Insert(0, new ListItem("Seleccione", "-1")); DdlUsuario.Items.Insert(0, new ListItem("Seleccione", "-1"));
} }

View File

@@ -104,7 +104,7 @@ Partial Class Inventarios_Default
If dr IsNot Nothing Then If dr IsNot Nothing Then
LtPs.Text = $"Producto: <b>{dr("PSCodigo").ToString}</b>" LtPs.Text = $"Producto: <b>{dr("PSCodigo").ToString}</b>"
Dim CvePrecioLista As Integer = -1 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 CvePrecioLista = -2
End If End If

View File

@@ -453,7 +453,7 @@
</asp:TemplateField> </asp:TemplateField>
<asp:TemplateField HeaderText="Sección Almacén" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="10%" Visible="false"> <asp:TemplateField HeaderText="Sección Almacén" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="10%" Visible="false">
<ItemTemplate> <ItemTemplate>
<asp:DropDownList ID="DdlSeccionAlmacen" DataTextField="Seccion" DataValueField="CveSeccion" CssClass="select2me" Style="width: 85% !important" runat="server" CausesValidation="true" Visible="false"> <asp:DropDownList ID="DdlSeccionAlmacen" DataTextField="SeccionAlmacen" DataValueField="CveSeccionAlmacen" CssClass="select2me" Style="width: 85% !important" runat="server" CausesValidation="true" Visible="false">
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem> <asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList> </asp:DropDownList>
</ItemTemplate> </ItemTemplate>

View File

@@ -1264,11 +1264,19 @@ Partial Class Inventarios_RecepcionAlmacen
If CBool(e.Row.DBCampo("AplicaSeccion")) Then If CBool(e.Row.DBCampo("AplicaSeccion")) Then
e.Row.FCDropDownList("DdlSeccionAlmacen").Visible = True e.Row.FCDropDownList("DdlSeccionAlmacen").Visible = True
If DdlAlmacen.SelectedValue.ToEntero > 0 Then 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() 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")) 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 Else
e.Row.FCDropDownList("DdlSeccionAlmacen").Visible = False e.Row.FCDropDownList("DdlSeccionAlmacen").Visible = False

View File

@@ -460,6 +460,7 @@ Partial Class Inventarios_RecepcionUsados
dt.Columns.Add("CveAF") dt.Columns.Add("CveAF")
dt.Columns.Add("Serie", Type.GetType("System.String")) dt.Columns.Add("Serie", Type.GetType("System.String"))
dt.Columns.Add("Lote", 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("Observaciones")
dt.Columns.Add("CountMovimientoEntradaDetalle") dt.Columns.Add("CountMovimientoEntradaDetalle")
@@ -995,6 +996,7 @@ Partial Class Inventarios_RecepcionUsados
DtMovimientos.Rows(IndexDTUsado)("Estatus") = "" DtMovimientos.Rows(IndexDTUsado)("Estatus") = ""
DtMovimientos.Rows(IndexDTUsado)("CveSeccionAlmacen") = CveSeccionAlmacen DtMovimientos.Rows(IndexDTUsado)("CveSeccionAlmacen") = CveSeccionAlmacen
DtMovimientos.Rows(IndexDTUsado)("SeccionAlmacen") = SeccionAlmacen DtMovimientos.Rows(IndexDTUsado)("SeccionAlmacen") = SeccionAlmacen
DtMovimientos.Rows(IndexDTUsado)("FechaCaducidad") = "1900/01/01"
DtMovimientos.Rows(IndexDTUsado)("CodigoAF") = CodigoAF DtMovimientos.Rows(IndexDTUsado)("CodigoAF") = CodigoAF

View File

@@ -205,10 +205,13 @@
<tr class="Titulos"> <tr class="Titulos">
<th width="3%">#</th> <th width="3%">#</th>
<th width="7%">Cant</th> <th width="7%">Cant</th>
<th width="40%">Clasificación<br /> <th width="20%">Clasificación<br />
Producto </th> Producto </th>
<th width="10%">U.M.</th> <th width="10%">U.M.</th>
<th style="width: 20%" runat="server" id="ThSerie" visible="false">Serie</th> <th style="width: 10%" runat="server" id="ThSeccion" visible="false">Sección almacén</th>
<th style="width: 10%" runat="server" id="ThSerie" visible="false">Serie</th>
<th style="width: 10%" runat="server" id="ThLote" visible="false">Lote</th>
<th style="width: 10%" runat="server" id="ThCaducidad" visible="false">Caducidad</th>
<th style="width: 10%;">Observaciones</th> <th style="width: 10%;">Observaciones</th>
<th width="10%"></th> <th width="10%"></th>
</tr> </tr>
@@ -238,8 +241,19 @@
<asp:CompareValidator ID="CVUnidad" runat="server" ControlToValidate="ddlUnidad" Type="Integer" Operator="GreaterThan" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Unidad Medida''</b> es necesario, por favor selecione una." Display="None" ValueToCompare="0" ValidationGroup="CVUnidad"></asp:CompareValidator> <asp:CompareValidator ID="CVUnidad" runat="server" ControlToValidate="ddlUnidad" Type="Integer" Operator="GreaterThan" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Unidad Medida''</b> es necesario, por favor selecione una." Display="None" ValueToCompare="0" ValidationGroup="CVUnidad"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender4" runat="server" HighlightCssClass="vco" TargetControlID="CVUnidad" Width="300px"></ajax:ValidatorCalloutExtender> <ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender4" runat="server" HighlightCssClass="vco" TargetControlID="CVUnidad" Width="300px"></ajax:ValidatorCalloutExtender>
</td> </td>
<td runat="server" id="TrSeccion" visible="false">
<asp:DropDownList ID="DdlSeccionAlmacen" DataTextField="Seccion" AppendDataBoundItems="true" DataValueField="CveSeccion" Class="form-control input-sm select2me" Style="width: 95% !important" runat="server" CausesValidation="true">
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList>
</td>
<td runat="server" id="TrSerie" visible="false"> <td runat="server" id="TrSerie" visible="false">
<asp:TextBox ID="TxtnSerie" runat="server" Width="80px" Visible="false"></asp:TextBox> <asp:TextBox ID="TxtnSerie" runat="server" Width="80px"></asp:TextBox>
</td>
<td runat="server" id="TrLote" visible="false">
<asp:TextBox ID="TxtLote" runat="server" Width="80px" ></asp:TextBox>
</td>
<td runat="server" id="TrCaducidad" visible="false">
<asp:TextBox ID="TxtCaducidad" runat="server" Width="80px" ></asp:TextBox>
</td> </td>
<td> <td>
<asp:TextBox ID="TxtObservacionesdetalle" CssClass="form-control input-sm" runat="server" MaxLength="200"></asp:TextBox> <asp:TextBox ID="TxtObservacionesdetalle" CssClass="form-control input-sm" runat="server" MaxLength="200"></asp:TextBox>
@@ -263,19 +277,24 @@
<asp:Button ID="BtnVinculaAFEdit" ClientIDMode="Static" Style="display: none;" runat="server" /> <asp:Button ID="BtnVinculaAFEdit" ClientIDMode="Static" Style="display: none;" runat="server" />
<asp:HiddenField runat="server" ID="HdnCodAFEdit" Value="-1" ClientIDMode="Static" /> <asp:HiddenField runat="server" ID="HdnCodAFEdit" Value="-1" ClientIDMode="Static" />
<asp:GridView ID="GvM" runat="server" GridLines="none" CssClass="table table-striped table-hover Widthall" EmptyDataText="Aún no hay registros." DataKeyNames="No,CveMovimientoDetalle,CveUM,CvePS,Serie,Observaciones,Cantidad" AutoGenerateColumns="False" AllowPaging="False" ShowFooter="True" ShowHeaderWhenEmpty="True" OnRowDataBound="GvM_RowDataBound"> <asp:GridView ID="GvM" runat="server" GridLines="none" CssClass="table table-striped table-hover Widthall" EmptyDataText="Aún no hay registros."
DataKeyNames="No,CveMovimientoDetalle,CveUM,CvePS,Serie,Observaciones,Cantidad,SeccionAlmacen,CveSeccionAlmacen,Lote,FechaCaducidad" AutoGenerateColumns="False" AllowPaging="False"
ShowFooter="True" ShowHeaderWhenEmpty="True" OnRowDataBound="GvM_RowDataBound">
<Columns> <Columns>
<asp:BoundField HeaderText="#" DataField="No" ItemStyle-Width="3%" ItemStyle-HorizontalAlign="Center" /> <asp:BoundField HeaderText="#" DataField="No" ItemStyle-Width="3%" ItemStyle-HorizontalAlign="Center" />
<asp:BoundField HeaderText="Cantidad" DataField="Cantidad" DataFormatString="{0:#,###,###.##}" ItemStyle-Width="7%" ItemStyle-HorizontalAlign="Right" /> <asp:BoundField HeaderText="Cantidad" DataField="Cantidad" DataFormatString="{0:#,###,###.##}" ItemStyle-Width="7%" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Producto" DataField="PS" ItemStyle-Width="40%" /> <asp:BoundField HeaderText="Producto" DataField="PS" ItemStyle-Width="40%" />
<asp:BoundField HeaderText="Unidad" DataField="UnidadMedida" ItemStyle-Width="10%" /> <asp:BoundField HeaderText="Unidad" DataField="UnidadMedida" ItemStyle-Width="10%" />
<asp:BoundField HeaderText="Serie" DataField="Serie" ItemStyle-Width="20%" /> <asp:BoundField HeaderText="Sección Almacén" DataField="SeccionAlmacen" ItemStyle-Width="10%" Visible="false"/>
<asp:BoundField HeaderText="Serie" DataField="Serie" ItemStyle-Width="10%" Visible="false" />
<asp:BoundField HeaderText="Lote" DataField="Lote" ItemStyle-Width="10%" Visible="false" />
<asp:BoundField HeaderText="Caducidad" DataField="FechaCaducidad" DataFormatString="{0:d}" ItemStyle-Width="10%" Visible="false" />
<asp:BoundField HeaderText="Observaciones" DataField="Observaciones" ItemStyle-Width="10%" /> <asp:BoundField HeaderText="Observaciones" DataField="Observaciones" ItemStyle-Width="10%" />
<asp:TemplateField HeaderText="Sección Almacén" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="10%" Visible="false"> <%--<asp:TemplateField HeaderText="Sección Almacén" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="10%" Visible="false">
<ItemTemplate> <ItemTemplate>
ss ss
</ItemTemplate> </ItemTemplate>
</asp:TemplateField> </asp:TemplateField>--%>
<asp:TemplateField ItemStyle-Width="10%"> <asp:TemplateField ItemStyle-Width="10%">
<ItemTemplate> <ItemTemplate>
<asp:LinkButton ID="lnkRemove" runat="server" AlternateText="Eliminar" CommandName="Delete" CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Seguro que desea eliminar el concepto?" data-btn-ok-label="si" /> <asp:LinkButton ID="lnkRemove" runat="server" AlternateText="Eliminar" CommandName="Delete" CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Seguro que desea eliminar el concepto?" data-btn-ok-label="si" />

View File

@@ -183,11 +183,16 @@ Partial Class Inventarios_ResguardoMaterial
dt.Columns.Add("PS") dt.Columns.Add("PS")
dt.Columns.Add("Estatus") dt.Columns.Add("Estatus")
dt.Columns.Add("Codigo") dt.Columns.Add("Codigo")
dt.Columns.Add("SeccionAlmacen")
dt.Columns.Add("Serie") 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("Observaciones")
dt.Columns.Add("CvePersonal", Type.GetType("System.Int32")) dt.Columns.Add("CvePersonal", Type.GetType("System.Int32"))
dt.Columns.Add("Checado", Type.GetType("System.Boolean")) dt.Columns.Add("Checado", Type.GetType("System.Boolean"))
DtMovimientos = dt DtMovimientos = dt
CargaGvM() CargaGvM()
@@ -272,14 +277,17 @@ Partial Class Inventarios_ResguardoMaterial
DdlAlmacenDestinoLiberacion.DataBind() DdlAlmacenDestinoLiberacion.DataBind()
DdlAlmacenDestinoLiberacion.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlAlmacenDestinoLiberacion.Items.Insert(0, New ListItem("Seleccione", "-1"))
DdlSeccionAlmacen.DataSource = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa, -1)
DdlSeccionAlmacen.DataBind()
CargaPS() CargaPS()
End Sub End Sub
Private Sub CargaPS() Private Sub CargaPS()
DdlProducto2.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1") DdlProducto2.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1")
If DdlProducto2.UsaWebService Then If DdlProducto2.UsaWebService Then
DdlProducto2.ddlWS.Attributes.Add("data-pagina", "Inventarios") 'DdlProducto2.ddlWS.Attributes.Add("data-pagina", "Inventarios")
DdlProducto2.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue.ToString) 'DdlProducto2.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue.ToString)
End If End If
If Not DdlProducto2.UsaWebService AndAlso CType(DdlProducto2.DataSource, DataTable) Is Nothing Then If Not DdlProducto2.UsaWebService AndAlso CType(DdlProducto2.DataSource, DataTable) Is Nothing Then
DdlProducto2.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa) DdlProducto2.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa)
@@ -329,11 +337,34 @@ Partial Class Inventarios_ResguardoMaterial
End Sub End Sub
Private Sub VerificaProducto() Private Sub VerificaProducto()
If DdlProducto2.SelectedValue.ToEntero > 0 Then If DdlProducto2.SelectedValue.ToEntero > 0 Then
If GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlProducto2.SelectedValue.ToEntero).FiltraParametros("Inv_CveMetodoInventario = 5", "PS").Rows.Count > 0 Then Dim drp As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlProducto2.SelectedValue.ToEntero).FiltroPrimero("")
ThSerie.Visible = True
TrSerie.Visible = True If drp IsNot Nothing Then
TxtnSerie.Visible = True 'activa Serie
GvM.Columns(4).Visible = True 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 Else
TxtnSerie.Visible = False TxtnSerie.Visible = False
End If End If
@@ -414,11 +445,15 @@ Partial Class Inventarios_ResguardoMaterial
registro.Item("CvePS") = PSSelected registro.Item("CvePS") = PSSelected
registro.Item("PS") = DdlProducto2.SelectedText registro.Item("PS") = DdlProducto2.SelectedText
registro.Item("Estatus") = "" registro.Item("Estatus") = ""
registro.Item("SeccionAlmacen") = If(DdlSeccionAlmacen.SelectedValue.ToEntero > 0, DdlSeccionAlmacen.SelectedItem.Text, "")
registro.Item("Serie") = TxtnSerie.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 registro.Item("Observaciones") = TxtObservacionesdetalle.Text
DtMovimientos.Rows.Add(registro) DtMovimientos.Rows.Add(registro)
CargaGvM() CargaGvM()
UPDatos.Update()
txtCantidad.Text = "" txtCantidad.Text = ""
txtCantidad.Focus() txtCantidad.Focus()
@@ -436,18 +471,48 @@ Partial Class Inventarios_ResguardoMaterial
#Region " GvM " #Region " GvM "
Private Sub CargaGvM() Private Sub CargaGvM()
ThSerie.Visible = False If DtMovimientos IsNot Nothing Then
TrSerie.Visible = False GvM.Columns(4).Visible = DtMovimientos.MAX("CveSeccionAlmacen").ToString.ToEntero > 0
TxtnSerie.Visible = False GvM.Columns(5).Visible = DtMovimientos.MAX("Serie").ToString <> ""
GvM.Columns(4).Visible = False GvM.Columns(6).Visible = DtMovimientos.MAX("Lote").ToString <> ""
For Each Dr As DataRow In DtMovimientos.Rows GvM.Columns(7).Visible = DtMovimientos.MAX("FechaCaducidad").ToString.ToDate > MinFecha
If Dr("Serie").ToString <> "" Then End If
ThSerie.Visible = True
TrSerie.Visible = True
GvM.Columns(4).Visible = True 'ThSerie.Visible = False
Exit For 'TrSerie.Visible = False
End If 'TxtnSerie.Visible = False
Next '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.DataSource = DtMovimientos
GvM.DataBind() GvM.DataBind()
@@ -460,6 +525,7 @@ Partial Class Inventarios_ResguardoMaterial
GvM.EditIndex = -1 GvM.EditIndex = -1
CargaGvM() CargaGvM()
UPDatos.Update()
End Sub End Sub
Protected Sub GvM_RowDataBound(sender As Object, e As GridViewRowEventArgs) Protected Sub GvM_RowDataBound(sender As Object, e As GridViewRowEventArgs)
@@ -740,7 +806,9 @@ Partial Class Inventarios_ResguardoMaterial
Dim Cont As Integer = 0 Dim Cont As Integer = 0
For Each Dr As DataRow In DtMovimientos.Rows 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." MensajeError = "Ocurrió un error al guardar los detalles del movimiento de salida. Por favor vuelva a intentar."
TieneError = True TieneError = True
Exit For Exit For
@@ -759,7 +827,9 @@ Partial Class Inventarios_ResguardoMaterial
Else Else
If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
For Each Dr As DataRow In ObjInventario.DtResultados.Rows 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 TieneError = True
MensajeError = "Ocurrió un error al guardar los movimientos de entrada" MensajeError = "Ocurrió un error al guardar los movimientos de entrada"
Exit For Exit For

View File

@@ -532,7 +532,7 @@ Partial Class Inventarios_TraspasoAlmacen
End If End If
Inv.Dispose() 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 If Existencia < 0 OrElse ExistenciaEspecificada < 0 Then
Alert("No hay existencia del producto", TipoMensaje.MsgAdvertencia) Alert("No hay existencia del producto", TipoMensaje.MsgAdvertencia)
RegistraScript("playsonidito(''142608__autistic-lucario__error.wav'')") 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 CveSucursalOrigen = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", $"CveAlmacen = {DdlAlmacenOrigen.SelectedValue.ToEntero}")
Dim CveSucursalDestino = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", $"CveAlmacen = {DdlAlmacenDestino.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 If CveSucursalOrigen <> CveSucursalDestino Then
Alert("Por ser un traspaso entre sucursales es necesario indicar que el traspaso es transitorio.", TipoMensaje.MsgAdvertencia) 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") RegistraScript("playsonidito(''142608__autistic-lucario__error.wav'');", "SonidoError")
@@ -844,6 +844,9 @@ Partial Class Inventarios_TraspasoAlmacen
If Not ErrorMovInv Then If Not ErrorMovInv Then
Dim TipoMovimientoEntrada = 27 Dim TipoMovimientoEntrada = 27
AlmacenEntrada = If(ChkTransitorio.Checked, DdlAlmacenTransitorio.SelectedValue.ToEntero, DdlAlmacenDestino.SelectedValue.ToEntero) 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, 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"), 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") 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 If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
Dim Cont As Integer = 0 Dim Cont As Integer = 0
For Each Dr As DataRow In ObjInventario.DtResultados.Rows 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 ErrorMovInv = True
TextoError = "Ocurrió un error al guardar los movimientos de entrada" TextoError = "Ocurrió un error al guardar los movimientos de entrada"
Exit For Exit For
@@ -1274,7 +1278,7 @@ Partial Class Inventarios_TraspasoAlmacen
Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowDataBound Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then 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 e.Row.Cells(0).BackColor = Drawing.Color.Red
End If End If
@@ -1718,8 +1722,12 @@ Partial Class Inventarios_TraspasoAlmacen
ObjInventario.IniciaTransacSQL() 'Inicia la transacción ObjInventario.IniciaTransacSQL() 'Inicia la transacción
Dim Fecha As Date = TxtFechaRecepcion.Text.ToDate 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 '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") Observaciones:=TxtObservacionesRecepcion.Text.Trim, CveAlmacenDestino:=GvDatosRecepcion.Rows(0).DataKey("CveAlmacenSalida").ToEntero, CveMovimientoRelacionado:=CveMovimientoSalida, Modulo:="TA/G1")
Folio = ObjInventario.Folio Folio = ObjInventario.Folio
@@ -1751,8 +1759,8 @@ Partial Class Inventarios_TraspasoAlmacen
TextoError = "Ocurrió un error al guardar los movimientos de salida" TextoError = "Ocurrió un error al guardar los movimientos de salida"
Exit For Exit For
End If End If
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, 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 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 ErrorMovInv = True
TextoError = "Ocurrió un error al guardar los movimientos de salida" TextoError = "Ocurrió un error al guardar los movimientos de salida"
Exit For Exit For

View File

@@ -77,7 +77,7 @@ Partial Class Ventas_ActualizarPrecios
DdlPrecioLista.Items.Clear() 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 ObjVta As New ClsVentas
Dim primerItem As String = "" Dim primerItem As String = ""
If ObjVta.GetPrecioListas(UsuarioActual.CveEmpresa) Then If ObjVta.GetPrecioListas(UsuarioActual.CveEmpresa) Then

View File

@@ -3776,9 +3776,6 @@
<asp:TextBox ID="TxtObservaciones" OnTextChanged="TxtObservaciones_TextChanged" AutoPostBack="true" Width="300" MaxLength="100" runat="server" Text='<%# Eval("Observacion") %>'></asp:TextBox> <asp:TextBox ID="TxtObservaciones" OnTextChanged="TxtObservaciones_TextChanged" AutoPostBack="true" Width="300" MaxLength="100" runat="server" Text='<%# Eval("Observacion") %>'></asp:TextBox>
</ItemTemplate> </ItemTemplate>
</asp:TemplateField> </asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Left" HeaderText="Vigencia" ItemStyle-Width="115"> <asp:TemplateField ItemStyle-HorizontalAlign="Left" HeaderText="Vigencia" ItemStyle-Width="115">
<ItemTemplate> <ItemTemplate>
<div class="input-group input-sm input-small date date-picker" data-date-format="dd/mm/yyyy" style="width: 115px !important; padding: 0px;"> <div class="input-group input-sm input-small date date-picker" data-date-format="dd/mm/yyyy" style="width: 115px !important; padding: 0px;">

View File

@@ -6922,7 +6922,15 @@ Partial Class Clientes
Public Sub DownLoad_ClickDocumentacion(sender As Object, e As EventArgs) Public Sub DownLoad_ClickDocumentacion(sender As Object, e As EventArgs)
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
Dim Adjunto As String = GvRow.DataKey("Adjunto") 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 = "" TxtDireccionAval.Text = ""
TxtAval.Text = "" TxtAval.Text = ""
RegistraScript("$('#ModalDivPagare').modal('show')") RegistraScript("$('#ModalDivPagare').modal('show')")
@@ -6985,6 +6993,7 @@ Partial Class Clientes
Response.Buffer = True Response.Buffer = True
memoryStream.WriteTo(Response.OutputStream) memoryStream.WriteTo(Response.OutputStream)
Response.End() Response.End()
memoryStream.Dispose()
End Sub End Sub
@@ -7055,12 +7064,11 @@ Partial Class Clientes
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 linkDescarga = "/Empresas/" & UsuarioActual.Empresa.CveEmpresa & "\DocElectronica\Clientes\" & CveCliente & "/" & Adjunto
Dim linkDescargaArchivo = UsuarioActual.Empresa.Ruta & "\DocElectronica\Clientes\" & CveCliente & "/" & Adjunto Dim linkDescargaArchivo = UsuarioActual.Empresa.Ruta & "\DocElectronica\Clientes\" & CveCliente & "/" & Adjunto
If File.Exists(linkDescargaArchivo) Or (Documentacion = "Pagaré" AndAlso UsuarioActual.CveEmpresa = 140) Then
If File.Exists(linkDescargaArchivo) Then
LnkDownLoadDoc.Visible = True LnkDownLoadDoc.Visible = True
ScriptManager.GetCurrent(Me).RegisterPostBackControl(LnkDownLoadDoc) ScriptManager.GetCurrent(Me).RegisterPostBackControl(LnkDownLoadDoc)

View File

@@ -810,7 +810,7 @@
<div class="col-md-6"> <div class="col-md-6">
<asp:UpdatePanel ID="UpMetodos" runat="server" UpdateMode="Conditional" RenderMode="Inline"> <asp:UpdatePanel ID="UpMetodos" runat="server" UpdateMode="Conditional" RenderMode="Inline">
<ContentTemplate> <ContentTemplate>
<asp:DropDownList CssClass="form-control input-sm select2me" Width="50%" ID="ddlMetodos" runat="server" DataTextField="MetodoInventario" DataValueField="CveMetodoInventario"></asp:DropDownList> <asp:DropDownList CssClass="form-control input-sm select2me" Width="50%" ID="ddlMetodos" runat="server" DataTextField="MetodoInventario" DataValueField="CveMetodoInventario" AutoPostBack="true" OnSelectedIndexChanged="ddlMetodos_SelectedIndexChanged"></asp:DropDownList>
<asp:RequiredFieldValidator InitialValue="-1" ID="RfvddlMetodos" Display="None" runat="server" ControlToValidate="ddlMetodos" ValidationGroup="GrpGuardar" Enabled="false" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Método de salida de Inventario''</b> es necesario, por favor ingréselo."></asp:RequiredFieldValidator> <asp:RequiredFieldValidator InitialValue="-1" ID="RfvddlMetodos" Display="None" runat="server" ControlToValidate="ddlMetodos" ValidationGroup="GrpGuardar" Enabled="false" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Método de salida de Inventario''</b> es necesario, por favor ingréselo."></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="RfvCRfvddlMetodos" runat="server" HighlightCssClass="vco" TargetControlID="RfvddlMetodos" Width="100px"></ajax:ValidatorCalloutExtender> <ajax:ValidatorCalloutExtender ID="RfvCRfvddlMetodos" runat="server" HighlightCssClass="vco" TargetControlID="RfvddlMetodos" Width="100px"></ajax:ValidatorCalloutExtender>
</ContentTemplate> </ContentTemplate>
@@ -831,7 +831,7 @@
<label class="col-md-6 truncate">Inventariable</label> <label class="col-md-6 truncate">Inventariable</label>
<div class="col-md-6"> <div class="col-md-6">
<asp:CheckBox ID="ChkInventariable" CssClass="make-switchsd" data-size="small" runat="server" Text=" " /> <asp:CheckBox ID="ChkInventariable" CssClass="chksino" data-size="small" runat="server" Text=" " />
</div> </div>
</div> </div>
@@ -839,7 +839,7 @@
<label class="col-md-6 truncate">Aplica Serie</label> <label class="col-md-6 truncate">Aplica Serie</label>
<div class="col-md-6"> <div class="col-md-6">
<asp:CheckBox ID="ChkSerie" CssClass="make-switchsd" data-size="small" runat="server" Text=" " /> <asp:CheckBox ID="ChkSerie" CssClass="chksino" data-size="small" runat="server" Text=" " />
</div> </div>
</div> </div>
@@ -847,7 +847,7 @@
<label class="col-md-6 truncate">Aplica Lote</label> <label class="col-md-6 truncate">Aplica Lote</label>
<div class="col-md-6"> <div class="col-md-6">
<asp:CheckBox ID="ChkLote" CssClass="make-switchsd" data-size="small" runat="server" Text=" " /> <asp:CheckBox ID="ChkLote" CssClass="chksino" data-size="small" runat="server" Text=" " />
</div> </div>
</div> </div>
@@ -855,7 +855,7 @@
<label class="col-md-6 truncate">Aplica Caducidad</label> <label class="col-md-6 truncate">Aplica Caducidad</label>
<div class="col-md-6"> <div class="col-md-6">
<asp:CheckBox ID="ChkCaducidad" CssClass="make-switchsd" data-size="small" runat="server" Text=" " /> <asp:CheckBox ID="ChkCaducidad" CssClass="chksino" data-size="small" runat="server" Text=" " />
</div> </div>
</div> </div>
@@ -863,7 +863,7 @@
<label class="col-md-6 truncate">Aplica Sección</label> <label class="col-md-6 truncate">Aplica Sección</label>
<div class="col-md-6"> <div class="col-md-6">
<asp:CheckBox ID="ChkSeccion" CssClass="make-switchsd" data-size="small" runat="server" Text=" " /> <asp:CheckBox ID="ChkSeccion" CssClass="chksino" data-size="small" runat="server" AutoPostBack="true" OnCheckedChanged="ChkSeccion_CheckedChanged" Text=" " />
</div> </div>
</div> </div>

View File

@@ -222,7 +222,7 @@ Partial Class ProductosyServicios
InicializaEcommerce() InicializaEcommerce()
If UsuarioActual.CveEmpresa.Contiene(141) Then If UsuarioActual.CveEmpresa.Contiene(141, 152) Then
'DivDatos.Attributes("class") = "col-md-12" 'DivDatos.Attributes("class") = "col-md-12"
DivDdlTipo.Visible = True DivDdlTipo.Visible = True
@@ -1348,6 +1348,7 @@ Partial Class ProductosyServicios
GlobalDTImpuestosLocales(-1, UsuarioActual.CveEmpresa) = Nothing GlobalDTImpuestosLocales(-1, UsuarioActual.CveEmpresa) = Nothing
GlobalDTProductosServiciosEquivalencias(-1, -1, UsuarioActual.CveEmpresa) = Nothing GlobalDTProductosServiciosEquivalencias(-1, -1, UsuarioActual.CveEmpresa) = Nothing
GlobalDTPSAdicionales(-1, UsuarioActual.CveEmpresa) = Nothing GlobalDTPSAdicionales(-1, UsuarioActual.CveEmpresa) = Nothing
GlobalDTInvPSSeccionesAlmacen(UsuarioActual.CveEmpresa, -1, -1) = Nothing
'Dim ObjPS As New ClsProductosServicios 'Dim ObjPS As New ClsProductosServicios
@@ -2635,4 +2636,29 @@ Partial Class ProductosyServicios
DdlCategoriaToxicidad.SelectedValueExist("000") DdlCategoriaToxicidad.SelectedValueExist("000")
End Select End Select
End Sub 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 End Class

View File

@@ -4809,7 +4809,7 @@ Partial Class Ventas
End Sub End Sub
Private Sub CargaCliente(CveCliente As Integer, Optional Estatus As Integer = -1) Private Sub CargaCliente(CveCliente As Integer, Optional Estatus As Integer = -1)
If CveCliente <= 0 Then Exit Sub
RBLPago.Items(0).Enabled = True RBLPago.Items(0).Enabled = True
@@ -9010,7 +9010,7 @@ Partial Class Ventas
i += 1 i += 1
Next 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 Timbre.Complementos.ComercioExterior11.AplicaComercioExteriorSubProyecto = AplicaComercioExteriorSubProyecto
If Obj.Cliente.AplicaComercioExterior And AplicaComercioExteriorSubProyecto Then If Obj.Cliente.AplicaComercioExterior And AplicaComercioExteriorSubProyecto Then
'DATOS GENERALES 'DATOS GENERALES
@@ -9026,8 +9026,8 @@ Partial Class Ventas
'EMISOR 'EMISOR
Dim Dr As DataRow Dim Dr As DataRow
Dr = Nothing Dr = Nothing
If GlobalDTSubProyectos(-1, DdlSubProyectoDatos.SelectedValue.ToEntero()).Rows.Count > 0 Then If GlobalDTSubProyectos(-1, DdlSubProyectoDatos.SelectedValue.ToEntero(), CveEmpresa:=UsuarioActual.CveEmpresa).Rows.Count > 0 Then
Dr = GlobalDTSubProyectos(-1, DdlSubProyectoDatos.SelectedValue.ToEntero())(0) Dr = GlobalDTSubProyectos(-1, DdlSubProyectoDatos.SelectedValue.ToEntero(), CveEmpresa:=UsuarioActual.CveEmpresa)(0)
End If End If
Timbre.Complementos.ComercioExterior11.Emisor.CURP = UsuarioActual.Empresa.CURP Timbre.Complementos.ComercioExterior11.Emisor.CURP = UsuarioActual.Empresa.CURP
Timbre.Complementos.ComercioExterior11.Emisor.Calle = Dr("Calle").ToString() Timbre.Complementos.ComercioExterior11.Emisor.Calle = Dr("Calle").ToString()
@@ -13768,29 +13768,41 @@ Partial Class Ventas
ObjPS.Dispose() ObjPS.Dispose()
End If End If
If UsuarioActual.Empresa.Funcionalidad(404).ToString() = "1" Then If UsuarioActual.Empresa.Funcionalidad(404).ToEntero > 0 Then 'cuando el valor es 10.- secuencia Cliente/Sucursal, 20 - sucursal/cliente
Dim CvePrecioListaPS As Integer = GlobalDTSubProyectos(-1, CveSubProyecto:=DdlSubProyectoDatos.SelectedValue.ToEntero(), CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("CvePrecioLista", "").ToEntero() 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 If CvePrecioListaPS > 0 Then
Dim ObjPS As New ClsProductosServicios Dim ObjPS As New ClsProductosServicios
If ObjPS.GetPSPreciosLista(UsuarioActual.CveEmpresa, CvePrecioListaPS, CvePS:=CvePSParametro) Then If ObjPS.GetPSPreciosLista(UsuarioActual.CveEmpresa, CvePrecioListaPS, CvePS:=CvePSParametro) Then
PrecioSugerido = ObjPS.DtResultados.FiltroPrimeroValor("PrecioLista").ToDouble PrecioSugerido = ObjPS.DtResultados.FiltroPrimeroValor("PrecioLista").ToDouble
PorcentajePrecio = ObjPS.DtResultados.FiltroPrimeroValor("Porcentaje").ToDouble
End If End If
ObjPS.Dispose() ObjPS.Dispose()
End If 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 If PrecioSugerido = 0 Then
Dim ObjInventarios As New ClsInventarios Dim ObjInventarios As New ClsInventarios
Dim CostoPS = ObjInventarios.GetCostoPS(CvePSParametro, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero(), CveTipoAlmacen:=1) 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 PrecioSugerido = ((PorcentajePrecio / 100) + 1) * CostoPS
End If End If
End If End If
CvePrecioLista = CvePrecioListaPS
End If End If
@@ -16074,6 +16086,8 @@ Partial Class Ventas
Dim DtMovimientosDetalles As DataTable Dim DtMovimientosDetalles As DataTable
DtRemConceptosSurtidos = Nothing DtRemConceptosSurtidos = Nothing
Dim TieneMovimientosSinCosto As Boolean = False
'Obtenemos los movimientos detalle 'Obtenemos los movimientos detalle
If ObjInventario.GetInv_Mov(CveRemision, UsuarioActual.CveEmpresa) Then If ObjInventario.GetInv_Mov(CveRemision, UsuarioActual.CveEmpresa) Then
@@ -16104,6 +16118,9 @@ Partial Class Ventas
'VALIDAR SI TIENE PRODUCTOS POR TRASPASAR 'VALIDAR SI TIENE PRODUCTOS POR TRASPASAR
If DtMovimientos.Rows.Count > 0 Then If DtMovimientos.Rows.Count > 0 Then
Dim GeneroMovimientoAlmacen As Boolean = False Dim GeneroMovimientoAlmacen As Boolean = False
TieneMovimientosSinCosto = DtMovimientosDetalles.COUNT("CveTipoAlmacen", "CveTipoAlmacen=26") > 0
For Each dr As DataRow In DtMovimientos.Rows For Each dr As DataRow In DtMovimientos.Rows
'Obtenemos los Movimientos de salida 'Obtenemos los Movimientos de salida
If ObjInventario.GetMovimientos(dr("CveMovimiento").ToString().ToEntero(), ConceptoMovimiento, -1, UsuarioActual.CveEmpresa) Then 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 MovDetalle As New DataTable
Dim AplicaMovimientoDetalleEntrada As Boolean = False Dim AplicaMovimientoDetalleEntrada As Boolean = False
If RemisionesLista.Count > 0 Then If RemisionesLista.Count > 0 Then
AplicaMovimientoDetalleEntrada = True 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 Else
MovDetalle = DtMovimientosDetalles.FiltraParametros($"CveMovimiento = {dr("CveMovimiento")}") MovDetalle = DtMovimientosDetalles.FiltraParametros($"CveMovimiento = {dr("CveMovimiento")}")
End If End If
@@ -16197,7 +16219,10 @@ Partial Class Ventas
MovDetalle.Dispose() 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
End If End If
@@ -17737,12 +17762,15 @@ Partial Class Ventas
DdlCuentaCheque.Items.Clear() DdlCuentaCheque.Items.Clear()
DdlCuentaTransferencia.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()))) DdlCuentaEfectivo.DataSource = DtCC.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()))) DdlCuentaTarjetaCredito.DataSource = DtCC.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()))) DdlCuentaTarjetaDebito.DataSource = DtCC.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()))) DdlCuentaCheque.DataSource = DtCC.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()))) DdlCuentaTransferencia.DataSource = DtCC.FiltraParametros(String.Format("CveMoneda = {0} AND CveTipoCuenta <> 1", If(DdlMoneda.SelectedValue.ToEntero() <= 0, 1, DdlMoneda.SelectedValue.ToEntero())))
DtCC.Dispose()
DdlCuentaEfectivo.DataBind() DdlCuentaEfectivo.DataBind()
DdlCuentaTarjetaCredito.DataBind() DdlCuentaTarjetaCredito.DataBind()

View File

@@ -30,11 +30,11 @@ Public Class WSApp
Return ConfigurationManager.AppSettings("UrlSitio").ToString Return ConfigurationManager.AppSettings("UrlSitio").ToString
End Get End Get
End Property End Property
ReadOnly Property GlobalDTPS(CveEmpresa As Integer, Optional CvePS As Integer = -1, Optional SATClavePS As String = "-1") As DataTable 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 Get
Dim ObjPS As New ClsProductosServicios Dim ObjPS As New ClsProductosServicios
If ObjPS.GetPS(CvePS, -1, CveEmpresa, SATClavePS:=SATClavePS) Then If ObjPS.GetPS(CvePS, -1, CveEmpresa, Codigo:=Codigo, SATClavePS:=SATClavePS, pAplicaParaVenta:=AplicaParaVenta, pEstado:=Estatus) Then
GlobalDTPS = ObjPS.DtResultados GlobalDTPS = ObjPS.DtResultados
Else Else
GlobalDTPS = Nothing GlobalDTPS = Nothing
@@ -69,16 +69,12 @@ Public Class WSApp
End Property 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 Public Property GlobalDTSubProyectos(CveProyecto As Integer, Optional CveSubProyecto As Integer = -1, Optional CveEmpresa As Integer = -1, Optional Estatus As Integer = 1) As DataTable
Get Get
Dim AppNombre As String = String.Format("GlobalDTSubProyectos{0}", CveEmpresa) Dim AppNombre As String = String.Format("GlobalDTSubProyectos-{0}", CveEmpresa)
'sino existe, recarga los datos '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 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 Dim P As New ClsSubProyectos
If P.GetSubProyectos(CveEmpresa:=CveEmpresa) Then Application(AppNombre) = P.DtResultados If P.GetSubProyectos(CveEmpresa:=CveEmpresa) Then Application(AppNombre) = P.DtResultados
P.Dispose() P.Dispose()
Dim msg As String = "aqui no se carga subproyectos"
msg.GuardaLog()
End If End If
If CveProyecto <> -1 OrElse CveSubProyecto <> -1 OrElse CveEmpresa <> -1 OrElse Estatus <> -1 Then If CveProyecto <> -1 OrElse CveSubProyecto <> -1 OrElse CveEmpresa <> -1 OrElse Estatus <> -1 Then
@@ -98,7 +94,7 @@ Public Class WSApp
End Get End Get
Set(ByVal value As DataTable) Set(ByVal value As DataTable)
Dim AppNombre As String = String.Format("GlobalDTSubProyectos{0}", CveEmpresa) Dim AppNombre As String = String.Format("GlobalDTSubProyectos-{0}", CveEmpresa)
Application(AppNombre) = value Application(AppNombre) = value
End Set End Set
End Property End Property
@@ -1238,9 +1234,7 @@ Public Class WSApp
Dim Row As DataRow = Nothing Dim Row As DataRow = Nothing
Dim TotalCalculableImpuestos As Decimal = 0 Dim TotalCalculableImpuestos As Decimal = 0
Dim DrPS As DataRow = Nothing Dim DrPS As DataRow = GlobalDTPS(CveEmpresa, CvePS:=PS.CvePS).FiltroPrimero("") ' Estado = -1
DrPS = GlobalDTPS(CveEmpresa, CvePS:=PS.CvePS).FiltroPrimero("") ' Estado = -1
If DrPS Is Nothing Then If DrPS Is Nothing Then
Retorno.Mensajes.Add("Ocurrió un error al cargar la información del Producto. Por favor vuelva a intentar.") Retorno.Mensajes.Add("Ocurrió un error al cargar la información del Producto. Por favor vuelva a intentar.")

View File

@@ -64,6 +64,10 @@