Commit inicial Ventas Productivo
This commit is contained in:
246
Inventarios/PrestamosdeProveedor.aspx.vb
Normal file
246
Inventarios/PrestamosdeProveedor.aspx.vb
Normal file
@@ -0,0 +1,246 @@
|
||||
Imports Extensiones
|
||||
|
||||
Partial Class Inventarios_PrestamosdeProveedor
|
||||
Inherits ClsPaginas
|
||||
|
||||
Private Sub Inventarios_PrestamosdeProveedor_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||||
If Not Page.IsPostBack Then
|
||||
CargaCombos()
|
||||
Dim a As New ClsValidaCFDi("EBFD0EF4-F7D2-4243-9A79-9C484D6C1323", "FRU880930R72", "AJA850608L7A", 39)
|
||||
Alert(a.EsValida)
|
||||
Dim lista As New List(Of String)
|
||||
lista.Add("93")
|
||||
lista.Add("100")
|
||||
Notificaciones.AlertaVentana("hola", lista)
|
||||
CargaDatos()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub CargaCombos()
|
||||
RVFechaEntrega.MaximumValue = Now.ToShortDateString
|
||||
|
||||
ddlProveedor.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1")
|
||||
|
||||
If ddlProveedor.UsaWebService Then
|
||||
|
||||
ddlProveedor.Attributes.Add("data-metodo", "getproveedores")
|
||||
Else
|
||||
ddlProveedor.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa)
|
||||
ddlProveedor.DataBind()
|
||||
ddlProveedor.SelectedValue = "-1"
|
||||
ddlProveedor.SelectedText = "Seleccione el Proveedor"
|
||||
End If
|
||||
|
||||
DdlAlmacenOrigen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1)
|
||||
DdlAlmacenOrigen.DataBind()
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub CargaDatos()
|
||||
Dim tCveProveedor As Integer = -1
|
||||
Dim tFolio As Integer = -1
|
||||
If ddlProveedor.SelectedValue.ToEntero > 0 Then tCveProveedor = ddlProveedor.SelectedValue.ToEntero
|
||||
If TxtFolioEntrega.Text <> "" Then tFolio = TxtFolioEntrega.Text.ToEntero
|
||||
Dim ObjInv As New ClsInventarios
|
||||
|
||||
If ObjInv.PrestamosdeProveedorGet(tCveProveedor, tFolio, UsuarioActual.CveEmpresa) Then
|
||||
GvD.DataSource = ObjInv.DtResultados
|
||||
End If
|
||||
|
||||
ObjInv.Dispose()
|
||||
GvD.DataBind()
|
||||
UppEntrega.Update()
|
||||
End Sub
|
||||
|
||||
Protected Sub GvD_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvD.RowDataBound
|
||||
If e.Row.RowType = DataControlRowType.DataRow Then
|
||||
|
||||
'Cuando es titulo
|
||||
If e.Row.DBCampo("PS").ToString.Trim = "" Then
|
||||
e.Row.CssClass = "Totales"
|
||||
|
||||
e.Row.FCCheckBox("Chk").Visible = False
|
||||
e.Row.FCTextBox("TxtCantidad").Visible = False
|
||||
|
||||
e.Row.Cells(2).Text = String.Format("Folio: <a class=""texto"" style=""color:white;"" target='_blank' href='/Inventarios/EntradasSalidas.aspx?CveMovimiento={1}'>{0}</a> ", e.Row.DBCampo("FolioSalida"), e.Row.DBCampo("CveMovimientoSalida"))
|
||||
e.Row.Cells(3).Text = String.Format("{0}", e.Row.DBCampo("FechaMovto").ToString.ToDate.ToShortDateString)
|
||||
e.Row.Cells(5).Text = String.Format("Proveedor: {0} ", e.Row.DBCampo("RazonSocial"))
|
||||
|
||||
Else
|
||||
If TxtFolioEntrega.Text <> "" Then
|
||||
e.Row.FCCheckBox("Chk").Visible = True
|
||||
e.Row.FCTextBox("TxtCantidad").Enabled = True
|
||||
End If
|
||||
e.Row.FCTextBox("TxtCantidad").Visible = True
|
||||
e.Row.FCTextBox("TxtCantidad").Attributes.Add("onkeyup", String.Format("ValidaCantidad(this,{0});", e.Row.DBCampo("Cantidad")))
|
||||
End If
|
||||
|
||||
''FUNCIONALIDAD PISTOLA DE CODIGOS
|
||||
'If UsuarioActual.Empresa.Funcionalidad(132) = "1" And e.Row.DBCampo("CodigoBarras").Trim <> "" Then
|
||||
' e.Row.FCTextBox("TxtCantidad").Enabled = False
|
||||
'End If
|
||||
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Protected Sub BtnRecibir_Click(sender As Object, e As EventArgs)
|
||||
If GvD.Rows.Count > 0 Then
|
||||
|
||||
'Valida Movimientos
|
||||
Dim ValidaMovtos = 0.0
|
||||
For Each gvr As GridViewRow In GvD.Rows
|
||||
If gvr.FCCheckBox("Chk").Checked AndAlso gvr.FCTextBox("TxtCantidad").Text.ToDecimal > 0 Then
|
||||
ValidaMovtos += gvr.FCTextBox("TxtCantidad").Text.ToDecimal
|
||||
If gvr.FCTextBox("TxtCantidad").Text.ToDecimal > 0 Then
|
||||
Dim SerieLote As String = "-1"
|
||||
Dim Lote As String = "-1"
|
||||
Dim Batch As String = "-1"
|
||||
If gvr.DataKey("SerieLote") <> "" Then SerieLote = gvr.DataKey("SerieLote")
|
||||
If gvr.DataKey("Lote") <> "" Then Lote = gvr.DataKey("Lote")
|
||||
If gvr.DataKey("Batch") <> "" Then Batch = gvr.DataKey("Batch")
|
||||
|
||||
Dim Valido = ValidaExistencia(gvr.FCTextBox("TxtCantidad").Text.ToDecimal, gvr.DataKey("CvePS").ToEntero, gvr.DataKey("CveUM").ToEntero, SerieLote, Lote, Batch)
|
||||
If Not Valido Then
|
||||
Alert("No hay existencia del producto a devolver.", TipoMensaje.MsgAdvertencia)
|
||||
Exit Sub
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
|
||||
If Not ValidaMovtos > 0 Then
|
||||
Alert("No hay movimientos que realizar. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
|
||||
|
||||
Dim ObjInventario As New ClsInventarios
|
||||
Dim ObjConta As New ClsContabilidad(ObjInventario.IniciaTransacSQL())
|
||||
|
||||
Dim CveMovimientoEntrada As Integer = 0
|
||||
Dim Folio = 0
|
||||
Dim ErrorMovInv As Boolean = False
|
||||
Dim TextoError = ""
|
||||
|
||||
'REGISTRA LA SALIDA Y ENTRADA (TRASPASO)
|
||||
|
||||
Dim Fecha As Date = TxtFechaEntrega.Text.ToDate
|
||||
|
||||
Dim CveMovimientoSalida As Integer
|
||||
Dim tCveProveedor As Integer = ddlProveedor.SelectedValue.ToEntero
|
||||
Dim CvePS As Integer = 0
|
||||
|
||||
'AGREGAMOS LA SALIDA
|
||||
CveMovimientoSalida = ObjInventario.AddMovimiento(DdlAlmacenOrigen.SelectedValue.ToEntero, 29, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1,
|
||||
Observaciones:=TxtObservacionesEntrega.Text.Trim, CveProveedor:=tCveProveedor)
|
||||
Folio = ObjInventario.Folio
|
||||
|
||||
If CveMovimientoSalida <= 0 Then
|
||||
TextoError = "No se pudo generar el movimiento de salida correctamente"
|
||||
ErrorMovInv = True
|
||||
Else
|
||||
|
||||
Dim CveMovimientoDetalleEntrada As Integer = 0
|
||||
|
||||
|
||||
For Each gvr As GridViewRow In GvD.Rows
|
||||
If gvr.FCCheckBox("Chk").Checked AndAlso gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal > 0 Then
|
||||
CveMovimientoDetalleEntrada = gvr.DataKey("CveMovimientoDetalle").ToString.ToEntero
|
||||
CvePS = gvr.DataKey("CvePS").ToString.ToEntero
|
||||
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal, gvr.DataKey("CveUM").ToString.ToEntero, gvr.DataKey("CvePS").ToString.ToEntero, 0, -1, CveMovimientoDetalleEntrada:=CveMovimientoDetalleEntrada, SerieLote:=gvr.DataKey("SerieLote").ToString, Lote:=gvr.DataKey("Lote").ToString, Batch:=gvr.DataKey("Batch").ToString) Then
|
||||
ErrorMovInv = True
|
||||
TextoError = "Ocurrió un error al guardar los movimientos de salida"
|
||||
Exit For
|
||||
End If
|
||||
|
||||
End If
|
||||
Next
|
||||
|
||||
'faltan las prepólizas
|
||||
If Not ErrorMovInv AndAlso ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
|
||||
Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("Inv/PrestamodeProvedor", 53, 0, 0, 1, Fecha, $" {TxtObservacionesEntrega.Text}", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoPoliza:=3)
|
||||
Dim tValorInventario As Decimal = ObjInventario.DtResultados.SUM("Total", "").ToDecimal.RoundSQL()
|
||||
Dim idCtaContable As Integer = 0
|
||||
Dim IdCtaContableOtro As Integer = UsuarioActual.Empresa.IdCuentaOtrosIngresos
|
||||
Dim TipoMovtoAlmacen As Boolean = False
|
||||
|
||||
Dim drA2 As Data.DataRow = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimero(String.Format("CveAlmacen = {0}", DdlAlmacenOrigen.SelectedValue))
|
||||
If drA2 IsNot Nothing Then idCtaContable = drA2("IdCtaContable").ToString.ToEntero
|
||||
|
||||
Dim OrigenMov As Integer = GlobalDTInvConceptos.FiltroPrimeroValor("Origen", "CveConcepto = 29").ToEntero
|
||||
If OrigenMov = 1 Then TipoMovtoAlmacen = False Else TipoMovtoAlmacen = True
|
||||
|
||||
Dim CveConceptoContable As Integer = 69
|
||||
Dim CveClasifCosto As Integer = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveClasificacion", String.Format("CvePS ={0} ", CvePS))
|
||||
idCtaContable = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaGasto", $"CveClasificacion = {CveClasifCosto}").ToEntero
|
||||
|
||||
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoAlmacen, tValorInventario, TxtObservacionesEntrega.Text.Trim, 68, TxtObservacionesEntrega.Text.Trim, Fecha, idCtaContable, -1, CveMovimientoAlmacen:=CveMovimientoSalida, ImporteMX:=tValorInventario) Then
|
||||
ErrorMovInv = True
|
||||
Else
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovtoAlmacen, tValorInventario, TxtObservacionesEntrega.Text.Trim, CveConceptoContable, TxtObservacionesEntrega.Text.Trim, Fecha, IdCtaContableOtro, -1, CveMovimientoAlmacen:=CveMovimientoSalida, CveClasificacion:=CveClasifCosto, ImporteMX:=tValorInventario) Then
|
||||
ErrorMovInv = True
|
||||
End If
|
||||
End If
|
||||
Else
|
||||
ErrorMovInv = True
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
|
||||
If Not ErrorMovInv Then
|
||||
ObjInventario.Commit()
|
||||
|
||||
TxtRecibio.Text = ""
|
||||
TxtFechaEntrega.Text = Now.ToShortDateString
|
||||
TxtObservacionesEntrega.Text = ""
|
||||
|
||||
Dim Mensaje As StringBuilder = New StringBuilder
|
||||
Mensaje.AppendFormat("Se realizo correctamente la recepción. <br/> Folio de Salida: <b><a href=""/Inventarios/EntradasSalidas.aspx?CveMovimiento={1}"" target=""_blank"">{0}</a></b>", Folio, CveMovimientoSalida)
|
||||
Mensaje.AppendFormat("<br/><a target='_blank' href='/Compras/PopUpVerFactura.aspx?P={0}'>Imprimir Reporte</a>", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoSalida))) 'onclick='ImprimirTraslado()'
|
||||
|
||||
Alert(Mensaje.ToString, TipoMensaje.MsgInformacion)
|
||||
|
||||
GvD.DataBind()
|
||||
CargaDatos()
|
||||
|
||||
UPDatosAlmacen.Update()
|
||||
Else
|
||||
ObjInventario.RollBack()
|
||||
Alert(TextoError, TipoMensaje.MsgError)
|
||||
End If
|
||||
ObjInventario.Dispose()
|
||||
' CargaEntrega()
|
||||
Else
|
||||
Alert("No hay movimientos por devolver", TipoMensaje.MsgAdvertencia)
|
||||
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Function ValidaExistencia(Cantidad As Double, CvePS As Integer, CveUnidadMedida As Integer, Optional SerieLote As String = "-1", Optional Lote As String = "-1", Optional Batch As String = "-1") As Boolean
|
||||
Dim Retorno = True
|
||||
|
||||
Dim Inv As New ClsInventarios
|
||||
Dim Existencia As Double = Inv.GetExistenciasPS(CvePS, CveUnidadMedida, UsuarioActual.CveEmpresa, DdlAlmacenOrigen.SelectedValue.ToEntero, FechaMovto:=TxtFechaEntrega.Text.ToDate.ToString("yyyy/MM/dd 23:59"), SerieLote:=SerieLote, Lote:=Lote, Batch:=Batch)
|
||||
Inv.Dispose()
|
||||
'- DtMovimientos.SUM("Cantidad", $"CvePS = {CvePS} AND CveUM = {CveUnidadMedida} {If(SerieLote <> "-1", $" AND SerieLote = '{SerieLote}'", "")}")
|
||||
|
||||
If Existencia - Cantidad < 0 Then
|
||||
If Existencia < 0 Then
|
||||
Alert("No hay existencia del producto", TipoMensaje.MsgAdvertencia)
|
||||
Else
|
||||
Alert(String.Format("Solo hay en existencia: {0}", Existencia), TipoMensaje.MsgAdvertencia)
|
||||
End If
|
||||
Retorno = False
|
||||
End If
|
||||
|
||||
Return Retorno
|
||||
End Function
|
||||
|
||||
|
||||
Private Sub BtnCargaPendientes_Click(sender As Object, e As EventArgs) Handles BtnCargaPendientes.Click
|
||||
CargaDatos()
|
||||
End Sub
|
||||
End Class
|
||||
Reference in New Issue
Block a user