-ALMACEN RECIBE Y PROVOCA FACTURA DE DEVOLUCIÓN:
Recepcion de devoluciones
This commit is contained in:
879
Inventarios/RecepcionDevolucion.aspx.vb
Normal file
879
Inventarios/RecepcionDevolucion.aspx.vb
Normal file
@@ -0,0 +1,879 @@
|
||||
Option Strict On
|
||||
Option Explicit On
|
||||
|
||||
Imports System.Data
|
||||
Imports Extensiones
|
||||
|
||||
Partial Class Inventarios_RecepcionDevolucion
|
||||
Inherits ClsPaginas
|
||||
|
||||
#Region "P R O P I E D A D E S"
|
||||
Private Property ObjRemisionNC As Modelos.Factura
|
||||
Get
|
||||
Return CType(ViewState("ObjRemisionNC"), Modelos.Factura)
|
||||
End Get
|
||||
Set(value As Modelos.Factura)
|
||||
ViewState("ObjRemisionNC") = value
|
||||
End Set
|
||||
End Property
|
||||
Public Property DtMovimientos As DataTable
|
||||
Get
|
||||
Return CType(ViewState("DtMovimientos"), DataTable)
|
||||
End Get
|
||||
Set(value As DataTable)
|
||||
ViewState("DtMovimientos") = value
|
||||
End Set
|
||||
End Property
|
||||
#End Region
|
||||
|
||||
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
|
||||
If Not IsPostBack Then
|
||||
InicializaValores()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Protected Sub CreaDT()
|
||||
Dim dt As New DataTable
|
||||
|
||||
Dim column As DataColumn = New DataColumn("Consec")
|
||||
column.DataType = GetType(Integer)
|
||||
With column
|
||||
.AutoIncrement = True
|
||||
.AutoIncrementSeed = 1
|
||||
.AutoIncrementStep = 1
|
||||
End With
|
||||
|
||||
dt.Columns.Add(column)
|
||||
dt.Columns.Add("CantidadDevuelta", GetType(Decimal))
|
||||
dt.Columns.Add("CantidadVenta", GetType(Decimal))
|
||||
dt.Columns.Add("CveVentaDetalle", GetType(Integer))
|
||||
dt.Columns.Add("CveVenta", GetType(Integer))
|
||||
dt.Columns.Add("Venta", GetType(String))
|
||||
dt.Columns.Add("CveUM", GetType(Integer))
|
||||
dt.Columns.Add("UnidadMedida", GetType(String))
|
||||
dt.Columns.Add("CvePS", GetType(Integer))
|
||||
dt.Columns.Add("PS", GetType(String))
|
||||
dt.Columns.Add("PU", GetType(Decimal))
|
||||
dt.Columns.Add("Total", GetType(Decimal))
|
||||
dt.Columns.Add("CveClasificacion", GetType(Integer))
|
||||
dt.Columns.Add("CveSeccionAlmacen", GetType(Integer))
|
||||
dt.Columns.Add("SeccionAlmacen", GetType(String))
|
||||
dt.Columns.Add("Serie", GetType(String))
|
||||
dt.Columns.Add("Lote", GetType(String))
|
||||
dt.Columns.Add("FechaCaducidad", GetType(DateTime))
|
||||
dt.Columns.Add("Observaciones", GetType(String))
|
||||
|
||||
DtMovimientos = dt.Clone()
|
||||
End Sub
|
||||
|
||||
Private Sub InicializaValores()
|
||||
Dim StrAlmacenes As String = "CveTipoAlmacen IN (1)"
|
||||
|
||||
If (UsuarioActual.Empresa.Funcionalidad(105) = "1" Or UsuarioActual.Empresa.Funcionalidad(141) = "1") Then
|
||||
DdlCliente.setEsWebService(True)
|
||||
DdlCliente.Attributes.Add("data-metodo", "getcliente")
|
||||
DdlCliente.SelectedText = "Todos"
|
||||
DdlCliente.SelectedValue = "-1"
|
||||
Else
|
||||
DdlCliente.setEsWebService(False)
|
||||
DdlCliente.ddl.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa)
|
||||
DdlCliente.ddl.DataBind()
|
||||
DdlCliente.ddl.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
||||
End If
|
||||
|
||||
DdlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros(StrAlmacenes) 'GlobalDTAlmacen(UsuarioActual.CveEmpresa)
|
||||
DdlAlmacen.DataBind()
|
||||
DdlAlmacen.Items.Insert(0, New ListItem("Seleccione ", "-1"))
|
||||
DdlAlmacen.SelectedValueExist(UsuarioActual.CveAlmacen)
|
||||
|
||||
|
||||
DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, CveEstatus:=1)
|
||||
DdlSubProyecto.DataBind()
|
||||
DdlSubProyecto.Items.Insert(0, New ListItem("Seleccione ", "-1"))
|
||||
|
||||
TxtFechaI.Text = $"01/{Now.Month}/{Now.Year}"
|
||||
TxtFechaF.Text = Now.ToString("dd/MM/yyyy")
|
||||
|
||||
GvDatos.DataSource = Nothing
|
||||
GvDatos.DataBind()
|
||||
|
||||
LimpiarDatos()
|
||||
|
||||
CargaPS(-1, DdlPS, AplicaAlmacen:=False)
|
||||
|
||||
CreaDT()
|
||||
|
||||
UpGenerales.Update()
|
||||
End Sub
|
||||
|
||||
Protected Sub DdlSubProyecto_SelectedIndexChanged(sender As Object, e As EventArgs)
|
||||
Dim StrAlmacenes As String = $"CveTipoAlmacen IN (1) AND CveSubProyecto={DdlSubProyecto.SelectedValue.ToEntero()}"
|
||||
|
||||
DdlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros(StrAlmacenes) 'GlobalDTAlmacen(UsuarioActual.CveEmpresa)
|
||||
DdlAlmacen.DataBind()
|
||||
DdlAlmacen.Items.Insert(0, New ListItem("Seleccione ", "-1"))
|
||||
DdlAlmacen.SelectedValueExist(UsuarioActual.CveAlmacen)
|
||||
|
||||
UpGenerales.Update()
|
||||
End Sub
|
||||
|
||||
Protected Sub LnkAgregarProducto_Click(sender As Object, e As EventArgs)
|
||||
Dim CveCliente As Integer = DdlCliente.SelectedValue.ToEntero()
|
||||
Dim CveSubProyecto As Integer = DdlSubProyecto.SelectedValue.ToEntero()
|
||||
|
||||
If CveCliente <= 0 Then
|
||||
Alert("Debe seleccionar un cliente", TipoMensaje.MsgAdvertencia)
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
If CveSubProyecto <= 0 Then
|
||||
Alert("Debe seleccionar un sub proyecto", TipoMensaje.MsgAdvertencia)
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
LimpiarDatos()
|
||||
|
||||
RegistraScript("$('#DivModalAgregar').modal('show');")
|
||||
End Sub
|
||||
|
||||
Private Sub LimpiarDatos()
|
||||
|
||||
GvPSAgregar.DataSource = Nothing
|
||||
GvPSAgregar.DataBind()
|
||||
|
||||
ChkAplicaSerie.Checked = False
|
||||
ChkAplicaLote.Checked = False
|
||||
ChkAplicaCaducidad.Checked = False
|
||||
|
||||
ChkAplicaSerie_CheckedChanged(ChkAplicaSerie, EventArgs.Empty)
|
||||
ChkAplicaLote_CheckedChanged(ChkAplicaSerie, EventArgs.Empty)
|
||||
ChkAplicaCaducidad_CheckedChanged(ChkAplicaSerie, EventArgs.Empty)
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub CargaPS(CveClasificacion As Integer, Objeto As ADServerControl.Dropdownlost, Optional AplicaAlmacen As Boolean = True, Optional CveMarca As Integer = -1)
|
||||
Objeto.setEsWebService(UsuarioActual.Empresa.Funcionalidad(141).ToString = "1")
|
||||
If Not UsuarioActual.Empresa.Funcionalidad(141).ToString = "1" Then
|
||||
Objeto.ddl.Items.Clear()
|
||||
Objeto.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=CveClasificacion, Estatus:=1, AplicaParaVenta:=1)
|
||||
Objeto.ddl.DataBind()
|
||||
Objeto.ddl.Items.Insert(0, New ListItem("*** Actualizar listado de Productos o Servicios ***", "-2"))
|
||||
Objeto.ddl.Items.Insert(0, New ListItem("Seleccione el Producto", "-1"))
|
||||
Else
|
||||
Objeto.Attributes.Add("data-cvesubproyecto", "-1")
|
||||
Objeto.ddlWS.Attributes.Add("data-cveclasificacion", "-1")
|
||||
Objeto.ddlWS.Attributes.Add("data-aplicaparaventa", "1")
|
||||
|
||||
If AplicaAlmacen Then
|
||||
Objeto.ddlWS.Attributes.Add("data-pagina", "ventas/ventas")
|
||||
Else
|
||||
Objeto.ddlWS.Attributes.Add("data-pagina", "-1")
|
||||
End If
|
||||
Objeto.ddlWS.Attributes.Add("data-aplicaparaventa", "1")
|
||||
Objeto.ddlWS.Attributes.Add("data-cvemarca", CveMarca.ToString)
|
||||
Objeto.ddlWS.Attributes.Add("data-Estatus", "1")
|
||||
End If
|
||||
End Sub
|
||||
Protected Sub ChkAplicaSerie_CheckedChanged(sender As Object, e As EventArgs)
|
||||
lblSerie.Visible = ChkAplicaSerie.Checked
|
||||
DivSerie.Visible = ChkAplicaSerie.Checked
|
||||
UpModalAgregar.Update()
|
||||
End Sub
|
||||
Protected Sub ChkAplicaLote_CheckedChanged(sender As Object, e As EventArgs)
|
||||
lblLote.Visible = ChkAplicaLote.Checked
|
||||
DivLote.Visible = ChkAplicaLote.Checked
|
||||
UpModalAgregar.Update()
|
||||
End Sub
|
||||
Protected Sub ChkAplicaCaducidad_CheckedChanged(sender As Object, e As EventArgs)
|
||||
lblCaducidad.Visible = ChkAplicaCaducidad.Checked
|
||||
DivCaducidad.Visible = ChkAplicaCaducidad.Checked
|
||||
UpModalAgregar.Update()
|
||||
End Sub
|
||||
Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs)
|
||||
Dim CvePS As Integer = DdlPS.SelectedValue.ToEntero()
|
||||
Dim CveCliente As Integer = DdlCliente.SelectedValue.ToEntero()
|
||||
Dim CveSubProyecto As Integer = DdlSubProyecto.SelectedValue.ToEntero()
|
||||
|
||||
If CvePS <= 0 Then
|
||||
Alert("Debe seleccionar un producto", TipoMensaje.MsgAdvertencia)
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
If CveCliente <= 0 Then
|
||||
Alert("Debe seleccionar un cliente", TipoMensaje.MsgAdvertencia)
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
If CveSubProyecto <= 0 Then
|
||||
Alert("Debe seleccionar un sub proyecto", TipoMensaje.MsgAdvertencia)
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
Dim FechaI As DateTime = TxtFechaI.Text.ToDateTime()
|
||||
Dim FechaF As DateTime = TxtFechaF.Text.ToDateTime()
|
||||
|
||||
Dim Serie As String = If(ChkAplicaSerie.Checked, TxtSerie.Text.Trim, "-1")
|
||||
Dim Lote As String = If(ChkAplicaLote.Checked, TxtLote.Text.Trim, "-1")
|
||||
Dim FechaCaducidad As DateTime = If(ChkAplicaCaducidad.Checked, TxtFechaCaducidad.Text.ToDateTime, MinFecha)
|
||||
|
||||
Dim ObjInv As New ClsInventarios
|
||||
Try
|
||||
If ObjInv.GetProductosDevolucion(CvePS, CveCliente, CveSubProyecto, FechaI, FechaF, Serie, Lote, FechaCaducidad, UsuarioActual.CveEmpresa) Then
|
||||
GvPSAgregar.DataSource = ObjInv.DtResultados
|
||||
End If
|
||||
Catch ex As Exception
|
||||
OnError("Ocurrio un error al obtener los datos de devolución", ex)
|
||||
End Try
|
||||
ObjInv.Dispose()
|
||||
|
||||
GvPSAgregar.DataBind()
|
||||
|
||||
UpModalAgregar.Update()
|
||||
End Sub
|
||||
|
||||
Protected Sub GvPSAgregar_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvPSAgregar.RowDataBound
|
||||
If e.Row.RowType = DataControlRowType.DataRow Then
|
||||
|
||||
If e.Row.DBCampo("CvePS").ToEntero() <= 0 Then
|
||||
e.Row.CssClass = "Totales"
|
||||
e.Row.FCCheckBox("ChkAplicar").Visible = False
|
||||
e.Row.FCTextBox("TxtCantidad").Visible = False
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
Protected Sub LnkModalAgregarUsado_Click(sender As Object, e As EventArgs)
|
||||
If DtMovimientos IsNot Nothing Then
|
||||
For Each GvRow As GridViewRow In GvPSAgregar.Rows
|
||||
If GvRow.RowType = DataControlRowType.DataRow Then
|
||||
If GvRow.FCCheckBox("ChkAplicar").Checked Then
|
||||
Dim RowDevolucion As DataRow = DtMovimientos.NewRow
|
||||
|
||||
RowDevolucion("CantidadDevuelta") = GvRow.FCTextBox("TxtCantidad").Text.ToDecimal()
|
||||
RowDevolucion("CantidadVenta") = GvRow.DataKey("Cantidad").ToDecimal()
|
||||
RowDevolucion("CveVentaDetalle") = GvRow.DataKey("CveVentaDetalle").ToEntero()
|
||||
RowDevolucion("CveVenta") = GvRow.DataKey("CveVenta").ToEntero()
|
||||
RowDevolucion("Venta") = GvRow.DataKey("SerieFolio")
|
||||
RowDevolucion("CveUM") = GvRow.DataKey("CveUM").ToEntero()
|
||||
RowDevolucion("UnidadMedida") = GvRow.DataKey("UnidadMedida")
|
||||
RowDevolucion("CvePS") = GvRow.DataKey("CvePS").ToEntero()
|
||||
RowDevolucion("PS") = GvRow.DataKey("PS")
|
||||
RowDevolucion("PU") = GvRow.DataKey("PU").ToDecimal()
|
||||
RowDevolucion("Total") = (GvRow.FCTextBox("TxtCantidad").Text.ToDecimal() * GvRow.DataKey("PU").ToDecimal())
|
||||
RowDevolucion("CveClasificacion") = GvRow.DataKey("CveClasificacion").ToEntero()
|
||||
RowDevolucion("CveSeccionAlmacen") = GvRow.DataKey("CveSeccionAlmacen").ToEntero()
|
||||
RowDevolucion("SeccionAlmacen") = GvRow.DataKey("SeccionAlmacen")
|
||||
RowDevolucion("Serie") = GvRow.DataKey("Serie")
|
||||
RowDevolucion("Lote") = GvRow.DataKey("Lote")
|
||||
RowDevolucion("FechaCaducidad") = If(String.IsNullOrEmpty(GvRow.DataKey("FechaCaducidad")), Nothing, GvRow.DataKey("FechaCaducidad").ToDateTime())
|
||||
RowDevolucion("Observaciones") = ""
|
||||
|
||||
'If GvRow.DataKey("CveAlmacen").ToEntero() > 0 AndAlso DdlAlmacen.SelectedValue.ToEntero() <= 0 Then
|
||||
' DdlAlmacen.SelectedValueExist(GvRow.DataKey("CveAlmacen"))
|
||||
'End If
|
||||
|
||||
DtMovimientos.Rows.Add(RowDevolucion)
|
||||
End If
|
||||
|
||||
End If
|
||||
Next
|
||||
|
||||
GvDatos.DataSource = DtMovimientos
|
||||
GvDatos.DataBind()
|
||||
|
||||
If DtMovimientos.Rows.Count > 0 Then
|
||||
DivFactura.Visible = True
|
||||
DdlFactura.DataSource = DtMovimientos.FiltraParametros("", DistinctColumns:={"CveVenta", "Venta"})
|
||||
DdlFactura.DataBind()
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
UpDatos.Update()
|
||||
UpGenerales.Update()
|
||||
|
||||
RegistraScript("$('#DivModalAgregar').modal('hide');")
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
#Region "C R E A R - R N C"
|
||||
Private Sub CreaRemisionNC(CveCliente As Integer, CveSubProyecto As Integer)
|
||||
If ObjRemisionNC IsNot Nothing Then
|
||||
ObjRemisionNC.Dispose()
|
||||
ObjRemisionNC = Nothing
|
||||
End If
|
||||
Me.ObjRemisionNC = New Modelos.Factura(UsuarioActual)
|
||||
|
||||
Me.ObjRemisionNC.TipoMensajeRespuesta = Modelos.TipoMensajeRespuesta.HTML
|
||||
Me.ObjRemisionNC.Serie = "-1"
|
||||
Me.ObjRemisionNC.Folio = -1 'Folio.ToEntero()
|
||||
Me.ObjRemisionNC.Version = "3.3"
|
||||
Me.ObjRemisionNC.FolioFiscal = ""
|
||||
Me.ObjRemisionNC.CveUsuario = UsuarioActual.CveUsuario
|
||||
Me.ObjRemisionNC.CveEmpresa = UsuarioActual.CveEmpresa
|
||||
Me.ObjRemisionNC.ConvertirPesos = False
|
||||
Me.ObjRemisionNC.CveVentaPadre = DdlFactura.SelectedValue.ToEntero()
|
||||
|
||||
Dim ObjVentasPadre As New ClsVentas
|
||||
If ObjVentasPadre.GetVenta(Me.ObjRemisionNC.CveVentaPadre, UsuarioActual.CveEmpresa) AndAlso ObjVentasPadre.DtResultados.Rows.Count > 0 Then
|
||||
Me.ObjRemisionNC.CveMoneda = ObjVentasPadre.DtResultados.FiltroPrimeroValor("CveMoneda").ToString().ToEntero()
|
||||
End If
|
||||
ObjVentasPadre.Dispose()
|
||||
|
||||
If Me.ObjRemisionNC.CveMoneda = 1 Then
|
||||
Me.ObjRemisionNC.TipoCambio = 1
|
||||
Else
|
||||
Me.ObjRemisionNC.TipoCambio = GlobalTipoCambio(Now).ToDecimal()
|
||||
End If
|
||||
|
||||
Me.ObjRemisionNC.Moneda = GlobalDTMonedas.FiltroPrimeroValor("Moneda", String.Format("CveMoneda = {0} ", Me.ObjRemisionNC.CveMoneda))
|
||||
Me.ObjRemisionNC.MonedaSAT = GlobalDTMonedas.FiltroPrimeroValor("AbreviaturaSAT", String.Format("CveMoneda = {0} ", Me.ObjRemisionNC.CveMoneda))
|
||||
Me.ObjRemisionNC.TipoDocto = "RNC"
|
||||
Me.ObjRemisionNC.RefDocto = ""
|
||||
Me.ObjRemisionNC.CveMesa = -1
|
||||
Me.ObjRemisionNC.Fecha = Now
|
||||
Me.ObjRemisionNC.CvePrePoliza = -1
|
||||
Me.ObjRemisionNC.FechaPago = Now
|
||||
Me.ObjRemisionNC.MotivoDescuento = ""
|
||||
Me.ObjRemisionNC.FechaEjecucion = Now
|
||||
Me.ObjRemisionNC.UsuarioCreo = UsuarioActual.Usuario
|
||||
Me.ObjRemisionNC.CveCondicionEntrega = -1
|
||||
Me.ObjRemisionNC.CondicionEntrega = ""
|
||||
Me.ObjRemisionNC.NumeroCuenta = ""
|
||||
Me.ObjRemisionNC.CondicionesPago = 0
|
||||
Me.ObjRemisionNC.FormaPago = 0
|
||||
Me.ObjRemisionNC.PedidoContrato = ""
|
||||
Me.ObjRemisionNC.NumeroContrato = ""
|
||||
Me.ObjRemisionNC.DescripcionContrato = ""
|
||||
Me.ObjRemisionNC.CveCorte = -1
|
||||
Me.ObjRemisionNC.TipoDocumento = "Remisión"
|
||||
'NUM 1- CARGO 2- BONIFICACION
|
||||
Me.ObjRemisionNC.Num1 = 0
|
||||
'NUM 0- USADO 1- AJUSTE/GARANTIA
|
||||
Me.ObjRemisionNC.Num2 = 0
|
||||
'ES PARA GENERAR DEVOLUCION
|
||||
Me.ObjRemisionNC.Num3 = 10
|
||||
Me.ObjRemisionNC.Alfa1 = ""
|
||||
Me.ObjRemisionNC.Alfa2 = ""
|
||||
Me.ObjRemisionNC.Alfa3 = ""
|
||||
Me.ObjRemisionNC.CveContrato = -1
|
||||
Me.ObjRemisionNC.ConvertirPesos = False
|
||||
Me.ObjRemisionNC.CveSubProyecto = CveSubProyecto
|
||||
Me.ObjRemisionNC.CveSubProyectoCobranza = CveSubProyecto
|
||||
Me.ObjRemisionNC.CveSubProyectoEjecucion = CveSubProyecto
|
||||
Me.ObjRemisionNC.SubProyecto = New Modelos.SubProyectoModel(GlobalDTSubProyectos(-1).FiltroPrimero(String.Format("CveSubProyecto = {0}", CveSubProyecto)))
|
||||
Me.ObjRemisionNC.SubProyectoMatriz = New Modelos.SubProyectoModel(GlobalDTSubProyectos(-1, CveSubProyecto:=-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero("TipoSucursal=1"))
|
||||
|
||||
'CLIENTE
|
||||
Me.ObjRemisionNC.CveCliente = CveCliente
|
||||
Me.ObjRemisionNC.SetCliente()
|
||||
Me.ObjRemisionNC.CveAlmacen = -1
|
||||
|
||||
Dim ObjCliente As New ClsClientes
|
||||
If ObjCliente.GetClientes(CveCliente, "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa, -1, TipoCliente:=-1) Then
|
||||
If ObjCliente.DtResultados.Rows.Count > 0 Then
|
||||
Me.ObjRemisionNC.CveFormaPago33 = ObjCliente.CveFormaPago33
|
||||
Me.ObjRemisionNC.FormaPago33 = GlobalDTVtaFormaPago.FiltroPrimeroValor("FormaPago", String.Format("CveFormaPago = {0}", ObjCliente.CveFormaPago33))
|
||||
Me.ObjRemisionNC.FormaPagoSAT33 = GlobalDTVtaFormaPago.FiltroPrimeroValor("ClaveFormaPagoSAT", String.Format("CveFormaPago = {0}", ObjCliente.CveFormaPago33))
|
||||
|
||||
Me.ObjRemisionNC.CveMetodoPago33 = ObjCliente.CveMetodoPago33
|
||||
Me.ObjRemisionNC.MetodoPago33 = GlobalDTVtaMetodoPago.FiltroPrimeroValor("MetodoPago", String.Format("CveMetodoPago = {0}", ObjCliente.CveMetodoPago33))
|
||||
Me.ObjRemisionNC.ClaveMetodoPagoSAT = GlobalDTVtaMetodoPago.FiltroPrimeroValor("ClaveMetodoPagoSAT", String.Format("CveMetodoPago = {0}", ObjCliente.CveMetodoPago33))
|
||||
|
||||
Me.ObjRemisionNC.CveUsoCFDI = ObjCliente.CveUsoCFDI
|
||||
Me.ObjRemisionNC.UsoCFDI = GlobalDTSATUsosCFDI.FiltroPrimeroValor("Descripcion", String.Format("CveUsoCFDI = {0}", ObjCliente.CveUsoCFDI))
|
||||
Me.ObjRemisionNC.ClaveUsoCFDI = GlobalDTSATUsosCFDI.FiltroPrimeroValor("UsoCFDI", String.Format("CveUsoCFDI = {0}", ObjCliente.CveUsoCFDI))
|
||||
|
||||
Me.ObjRemisionNC.CveMetodoPago = ObjCliente.CveMetodoPago33
|
||||
|
||||
If GlobalDTMetodosPago.FiltraParametros(String.Format("CveMetodoPago = {0}", ObjCliente.CveMetodoPago33)).Rows.Count > 0 Then
|
||||
Me.ObjRemisionNC.MetodoPago = GlobalDTMetodosPago.FiltraParametros(String.Format("CveMetodoPago = {0}", ObjCliente.CveMetodoPago33)).Rows(0)("MetodoPago").ToString
|
||||
Else
|
||||
Me.ObjRemisionNC.CveMetodoPago = 1
|
||||
Me.ObjRemisionNC.MetodoPago = "Efectivo"
|
||||
End If
|
||||
|
||||
If UsuarioActual.CveEmpresa = 119 Then
|
||||
Me.ObjRemisionNC.FormaPago = 20 'POR DEFINIR AND (@CveMetodoPago33 = 3 AND @CveFormaPago33 <> 20)
|
||||
If Me.ObjRemisionNC.CveMetodoPago33 = 3 Then
|
||||
Me.ObjRemisionNC.CveFormaPago33 = 20
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
If ObjCliente.GetSucursales(CveCliente) Then
|
||||
If ObjCliente.DtResultados.Rows.Count > 0 Then
|
||||
Me.ObjRemisionNC.CveClienteSucursal = If(String.IsNullOrEmpty(ObjCliente.DtResultados.FiltroPrimeroValor("CveClienteSucursal", "Estatus = 'Activo'")), -1, ObjCliente.DtResultados.FiltroPrimeroValor("CveClienteSucursal", "Estatus = 'Activo'").ToEntero())
|
||||
Else
|
||||
Me.ObjRemisionNC.CveClienteSucursal = -1
|
||||
End If
|
||||
End If
|
||||
ObjCliente.Dispose()
|
||||
|
||||
'DETALLES
|
||||
Me.ObjRemisionNC.DtDetalle = CreaDTDetalleRNC()
|
||||
|
||||
CargaDTDetalleRNC()
|
||||
|
||||
'VALIDA PROMOCIONES Y EXISTENCIAS
|
||||
Dim ObjVentas As New ClsVentas
|
||||
If ObjVentas.GetPromocionesPS(-1, Now, CveSubProyecto, Me.ObjRemisionNC.CveCliente, Me.ObjRemisionNC.CveVendedor, 1, UsuarioActual.CveEmpresa) Then
|
||||
Me.ObjRemisionNC.DtPromociones = ObjVentas.DtResultados.Copy()
|
||||
End If
|
||||
ObjVentas.Dispose()
|
||||
|
||||
Me.ObjRemisionNC.Observaciones = TxtObservaciones.Text
|
||||
Me.ObjRemisionNC.OrdenCompra = ""
|
||||
Me.ObjRemisionNC.PedidoContrato = ""
|
||||
Me.ObjRemisionNC.ObservacionesAlmacen = ""
|
||||
|
||||
|
||||
|
||||
'If TmpDTPolizaVirtual IsNot Nothing Then
|
||||
' Me.ObjRemisionNC.DtPolizasVirtuales = TmpDTPolizaVirtual
|
||||
'End If
|
||||
|
||||
End Sub
|
||||
|
||||
Private Function AddPSRNC(ByRef TmpDT As DataTable, Cantidad As Decimal, CveUM As Integer, UM As String, CveClasificacion As Integer, Clasificacion As String, CvePS As Integer, PS As String, Obs As String,
|
||||
PU As Decimal, Descuento As Decimal,
|
||||
CveProyecto As Integer, Proyecto As String, CveSubProyecto As Integer, SubProyecto As String,
|
||||
Optional Serie As String = "", Optional TiempoEntrega As String = "", Optional EntregaDirecta As Integer = 0,
|
||||
Optional CveContratoDetalle As Integer = 0, Optional CveVentaDetalle As Integer = 0, Optional CveMovimientoDetallePedido As Integer = 0,
|
||||
Optional CveOrdenCompraDetalle As Integer = 0, Optional CveVentaDetalleRemision As Integer = 0, Optional CveVentaDetalleCotizacion As Integer = 0,
|
||||
Optional CuentaPredial As String = "", Optional RegeneraIEPS As Boolean = True, Optional CveVentaDetallePedido2 As Integer = 0, Optional EsCargo As Boolean = False, Optional PorcentajeIVA As Decimal = 0D, Optional CveTamaño As Integer = 0) As Boolean
|
||||
|
||||
Dim Retorno As Boolean = False
|
||||
If Not CvePS > 0 Then
|
||||
Alert("Ocurrió un error al cargar la información del producto a agregar. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
|
||||
Return False
|
||||
End If
|
||||
|
||||
If (Obs.Length + PS.Length > 1000) Then
|
||||
Alert(String.Format("El Nombre y observación del producto tiene longitud de {0} caracteres y excede los 1000 caracteres permitidos.", Obs.Length + PS.Length), TipoMensaje.MsgAdvertencia)
|
||||
Return False
|
||||
End If
|
||||
|
||||
|
||||
Dim Row As DataRow = Nothing
|
||||
Dim TotalCalculableImpuestos As Decimal = 0D, TotalCalculableImpuestosIVA = 0D
|
||||
PU = Math.Round(PU, 6) ' el precio unitario puede llevar hasta 6 decimales permitidos
|
||||
|
||||
Row = TmpDT.NewRow()
|
||||
Row("CveProyecto") = CveProyecto
|
||||
Row("Proyecto") = Proyecto
|
||||
Row("CveSubProyecto") = CveSubProyecto
|
||||
Row("SubProyecto") = SubProyecto
|
||||
Row("Serie") = Serie
|
||||
Row("TiempoEntrega") = TiempoEntrega
|
||||
Row("Orden") = TmpDT.Rows.Count + 1
|
||||
Row("Cantidad") = Cantidad
|
||||
Row("CveUM") = CveUM
|
||||
Row("UM") = UM
|
||||
Row("CveClasificacion") = CveClasificacion
|
||||
Row("Clasificacion") = Clasificacion
|
||||
Row("CvePS") = CvePS
|
||||
Row("Obs") = Obs
|
||||
|
||||
Dim DrPS As DataRow = Nothing
|
||||
|
||||
DrPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimero("") ' Estado = -1
|
||||
|
||||
If DrPS Is Nothing Then
|
||||
Alert("Ocurrió un error al cargar la información del Producto. Por favor vuelva a intentar.", TipoMensaje.MsgAdvertencia)
|
||||
Return False
|
||||
End If
|
||||
|
||||
'verifica si tiene ventaminima
|
||||
If Cantidad > 0 AndAlso DrPS("VentaMinima").ToString.ToDecimal > 0 Then
|
||||
'verifico que la cantidad sea multiplo de venta minima, es decir ventaminima =5, solo puede vender 5,10,15...
|
||||
If Cantidad Mod DrPS("VentaMinima").ToString.ToDecimal <> 0 Then
|
||||
Alert(String.Format("El producto se vende solo en cantidades de {0}", DrPS("VentaMinima").ToString))
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
|
||||
TotalCalculableImpuestos = ((Cantidad * (PU)) - Descuento)
|
||||
TotalCalculableImpuestosIVA = TotalCalculableImpuestos * (1 + DrPS("IEPSPorcentaje").ToString().ToDecimal)
|
||||
|
||||
Row("PU") = PU
|
||||
Row("Codigo") = DrPS("Codigo")
|
||||
Row("NoIdentificacion") = DrPS("Codigo")
|
||||
Row("ClaveSATFraccionArancelaria") = DrPS("ClaveSATFraccionArancelaria")
|
||||
Row("ClaveSATUnidadAduana") = DrPS("ClaveSATUnidadAduana")
|
||||
Row("ClaveSATFraccionArancelariaDescripcion") = DrPS("ClaveSATFraccionArancelariaDescripcion")
|
||||
Row("ClaveSATUnidadAduanaDescripcion") = DrPS("ClaveSATUnidadAduanaDescripcion")
|
||||
Row("Consec") = TmpDT.Rows.Count + 1
|
||||
|
||||
Row("PS") = DrPS("PS")
|
||||
Row("CodigoPS") = DrPS("PSCodigo").ToString
|
||||
Row("CveTipoPS") = DrPS("CveTipoPS")
|
||||
Row("CveTipoInvPS") = DrPS("Inv_CveMetodoInventario")
|
||||
Row("CveTamaño") = DrPS("CveTamaño")
|
||||
|
||||
If CveClasificacion <= 0 Then Row("CveClasificacion") = DrPS("CveClasificacion")
|
||||
If Clasificacion = "" Then Row("Clasificacion") = DrPS("Clasificacion")
|
||||
|
||||
If DrPS("IVA").ToString().Contiene("-1", "") Then
|
||||
Row("PorcentajeIVA") = PorcentajeIVA
|
||||
Else
|
||||
Row("PorcentajeIVA") = DrPS("IVA")
|
||||
End If
|
||||
|
||||
Row("IVA") = Row("PorcentajeIVA")
|
||||
Row("ImporteIVA") = Math.Round(Row("PorcentajeIVA").ToString.ToDecimal * TotalCalculableImpuestosIVA, 2)
|
||||
|
||||
|
||||
Row("ImporteRetIVA") = 0D
|
||||
Row("ImporteRetISR") = 0D
|
||||
Row("PorcentajeRetIVA") = 0D
|
||||
Row("PorcentajeRetISR") = 0D
|
||||
Row("PorcentajeIEPS") = DrPS("IEPSPorcentaje")
|
||||
Row("ImporteIEPS") = Math.Round(DrPS("IEPSPorcentaje").ToString.ToDecimal * TotalCalculableImpuestos, 2)
|
||||
Row("IEPS") = Row("ImporteIEPS")
|
||||
Row("Descuento") = Math.Round(Descuento, 2)
|
||||
Row("TipoDescuento") = 0
|
||||
Row("Total") = (Cantidad * PU)
|
||||
Row("TotalImporte") = Math.Round(Cantidad * PU, 2)
|
||||
|
||||
Row("SATClaveProdServ") = DrPS("SATClavePS")
|
||||
Row("SATClaveUM") = DrPS("SATClaveUnidadMedida")
|
||||
|
||||
|
||||
Row("EntregaDirecta") = EntregaDirecta
|
||||
'Contratos
|
||||
Row("CveContratoDetalle") = CveContratoDetalle
|
||||
Row("CveVentaDetalle") = CveVentaDetalle
|
||||
Row("CveMovimientoDetallePedido") = CveMovimientoDetallePedido
|
||||
Row("CveOrdenCompraDetalle") = CveOrdenCompraDetalle
|
||||
Row("CveVentaDetalleRemision") = CveVentaDetalleRemision
|
||||
Row("CveVentaDetalleCotizacion") = CveVentaDetalleCotizacion
|
||||
Row("CveVentaDetallePedido2") = CveVentaDetallePedido2
|
||||
Row("CuentaPredial") = CuentaPredial
|
||||
Row("EsCargo") = EsCargo
|
||||
Row("CveTamaño") = CveTamaño
|
||||
|
||||
'RECARGAR GV
|
||||
TmpDT.Rows.Add(Row)
|
||||
TmpDT.AcceptChanges()
|
||||
Retorno = True
|
||||
Return Retorno
|
||||
|
||||
End Function
|
||||
Protected Function CreaDTDetalleRNC() As DataTable
|
||||
Dim TmpDT = New DataTable
|
||||
TmpDT.Columns.Add("CveVenta", GetType(Integer))
|
||||
TmpDT.Columns.Add("Consec", GetType(Integer))
|
||||
TmpDT.Columns.Add("Cantidad", GetType(Decimal))
|
||||
TmpDT.Columns.Add("Codigo", GetType(String))
|
||||
TmpDT.Columns.Add("CveUM", GetType(Integer))
|
||||
TmpDT.Columns.Add("UM", GetType(String))
|
||||
TmpDT.Columns.Add("SATClaveUM", GetType(String))
|
||||
TmpDT.Columns.Add("CveClasificacion", GetType(Integer))
|
||||
TmpDT.Columns.Add("Clasificacion", GetType(String))
|
||||
TmpDT.Columns.Add("CvePS", GetType(Integer))
|
||||
TmpDT.Columns.Add("PS", GetType(String))
|
||||
TmpDT.Columns.Add("CodigoPS", GetType(String))
|
||||
TmpDT.Columns.Add("SATClaveProdServ", GetType(String))
|
||||
TmpDT.Columns.Add("NoIdentificacion", GetType(String))
|
||||
TmpDT.Columns.Add("CveTipoPS", GetType(Integer))
|
||||
TmpDT.Columns.Add("CveTipoInvPS", GetType(Integer))
|
||||
TmpDT.Columns.Add("Serie", GetType(String))
|
||||
TmpDT.Columns.Add("CuentaPredial", GetType(String))
|
||||
TmpDT.Columns.Add("Obs", GetType(String))
|
||||
TmpDT.Columns.Add("TiempoEntrega", GetType(String))
|
||||
TmpDT.Columns.Add("PU", GetType(Decimal))
|
||||
TmpDT.Columns.Add("IVA", GetType(Decimal))
|
||||
TmpDT.Columns.Add("ImporteIVA", GetType(Decimal))
|
||||
TmpDT.Columns.Add("PorcentajeIVA", GetType(Decimal))
|
||||
TmpDT.Columns.Add("ImporteRetIVA", GetType(Decimal))
|
||||
TmpDT.Columns.Add("ImporteRetISR", GetType(Decimal))
|
||||
TmpDT.Columns.Add("PorcentajeRetIVA", GetType(Decimal))
|
||||
TmpDT.Columns.Add("PorcentajeRetISR", GetType(Decimal))
|
||||
TmpDT.Columns.Add("ImporteIEPS", GetType(Decimal))
|
||||
TmpDT.Columns.Add("IEPS", GetType(Decimal))
|
||||
TmpDT.Columns.Add("PorcentajeIEPS", GetType(Decimal))
|
||||
TmpDT.Columns.Add("Descuento", GetType(Decimal))
|
||||
TmpDT.Columns.Add("TipoDescuento", GetType(Integer))
|
||||
TmpDT.Columns.Add("TotalImporte", GetType(Decimal))
|
||||
TmpDT.Columns.Add("Total", GetType(Decimal))
|
||||
'Para uso del módulo contable
|
||||
TmpDT.Columns.Add("AsientoContableVentas", GetType(Integer))
|
||||
TmpDT.Columns.Add("IdCtaContVentas", GetType(Integer))
|
||||
TmpDT.Columns.Add("AplicaParaConcepto", GetType(Boolean))
|
||||
TmpDT.Columns.Add("CveProyecto", GetType(Integer))
|
||||
TmpDT.Columns.Add("Proyecto", GetType(String))
|
||||
TmpDT.Columns.Add("CveSubProyecto", GetType(Integer))
|
||||
TmpDT.Columns.Add("SubProyecto", GetType(String))
|
||||
TmpDT.Columns.Add("CveVentaDetallePadre", GetType(Integer))
|
||||
|
||||
'TipoDescuento: 1 = Descuento * PU; 2 = Descuento por Total del concepto
|
||||
TmpDT.Columns.Add("CvePresupuestoIngreso", GetType(Integer))
|
||||
TmpDT.Columns.Add("CveFuenteRecaudacion", GetType(Integer))
|
||||
'Contratos
|
||||
TmpDT.Columns.Add("CveContratoDetalle", GetType(Integer))
|
||||
'Remisiones a Facturas
|
||||
TmpDT.Columns.Add("CveVentaDetalle", GetType(Integer))
|
||||
TmpDT.Columns.Add("CveVentaDetalleRemision", GetType(Integer))
|
||||
TmpDT.Columns.Add("CveVentaDetalleCotizacion", GetType(Integer))
|
||||
|
||||
'Pedido2 a Facturas
|
||||
TmpDT.Columns.Add("CveVentaDetallePedido2", GetType(Integer))
|
||||
|
||||
TmpDT.Columns.Add("Origen", GetType(Integer))
|
||||
'Ordenes Servicio
|
||||
TmpDT.Columns.Add("CveOS", GetType(Integer))
|
||||
TmpDT.Columns.Add("CveOSDetalle", GetType(Integer))
|
||||
TmpDT.Columns.Add("SeFacturara", GetType(Integer))
|
||||
TmpDT.Columns.Add("Folio", GetType(Integer))
|
||||
TmpDT.Columns.Add("Estatus", GetType(String))
|
||||
'Ordenamiento
|
||||
TmpDT.Columns.Add("Orden", GetType(Integer))
|
||||
TmpDT.Columns.Add("TipoDocto", GetType(String))
|
||||
'OC
|
||||
TmpDT.Columns.Add("CveOrdenCompraDetalle", GetType(Integer))
|
||||
TmpDT.Columns.Add("EntregaDirecta", GetType(Integer))
|
||||
|
||||
TmpDT.Columns.Add("CveMovimientoDetallePedido", GetType(Integer))
|
||||
TmpDT.Columns.Add("CantidadFacturadaRem", GetType(Decimal))
|
||||
TmpDT.Columns.Add("CantidadFacturadaCot", GetType(Decimal))
|
||||
TmpDT.Columns.Add("CantidadFacturadaPed2", GetType(Decimal))
|
||||
TmpDT.Columns.Add("CantidadInventario", GetType(Decimal))
|
||||
|
||||
TmpDT.Columns.Add("ClaveSATFraccionArancelaria", GetType(String))
|
||||
TmpDT.Columns.Add("ClaveSATUnidadAduana", GetType(String))
|
||||
TmpDT.Columns.Add("ClaveSATFraccionArancelariaDescripcion", GetType(String))
|
||||
TmpDT.Columns.Add("ClaveSATUnidadAduanaDescripcion", GetType(String))
|
||||
|
||||
TmpDT.Columns.Add("CveTamaño", GetType(Integer))
|
||||
TmpDT.Columns.Add("EsCargo", GetType(Boolean))
|
||||
|
||||
Return TmpDT
|
||||
End Function
|
||||
Protected Sub CargaDTDetalleRNC()
|
||||
'CvePS = Dr("CvePS").ToString.ToEntero
|
||||
'CveUM = Dr("CveUM").ToString.ToEntero
|
||||
'Cantidad = Dr("Cantidad").ToString.ToDecimal
|
||||
'PU = Dr("PU").ToString.ToDecimal
|
||||
|
||||
'AplicaSerie = CBool(Dr("AplicaSerie"))
|
||||
'Serie = If(AplicaSerie, Dr("Serie").ToString, "-1")
|
||||
|
||||
'AplicaLote = CBool(Dr("AplicaLote"))
|
||||
'Lote = If(AplicaSerie, Dr("Lote").ToString, "-1")
|
||||
|
||||
'AplicaCaducidad = CBool(Dr("AplicaCaducidad"))
|
||||
'FechaCaducidad = If(AplicaCaducidad, Dr("FechaCaducidad").ToString.ToDateTime, MinFecha)
|
||||
|
||||
'If Dr("CveTipoInvPS").ToString.ToEntero = 5 AndAlso AplicaSerie AndAlso Serie = "" Then
|
||||
' OcurrioError = True
|
||||
' ErrorList.Add("Se deben especificar las Series de los productos de almacén")
|
||||
' Exit For
|
||||
'End If
|
||||
|
||||
Dim DtInventario As DataTable = New DataTable
|
||||
Dim column As DataColumn = New DataColumn("Consec")
|
||||
column.DataType = GetType(Integer)
|
||||
With column
|
||||
.AutoIncrement = True
|
||||
.AutoIncrementSeed = 1
|
||||
.AutoIncrementStep = 1
|
||||
End With
|
||||
|
||||
DtInventario.Columns.Add(column)
|
||||
DtInventario.Columns.Add("Cantidad", GetType(Decimal))
|
||||
DtInventario.Columns.Add("CveVentaDetalle", GetType(Integer))
|
||||
DtInventario.Columns.Add("CvePS", GetType(Integer))
|
||||
DtInventario.Columns.Add("CveUM", GetType(Integer))
|
||||
DtInventario.Columns.Add("PU", GetType(Decimal))
|
||||
DtInventario.Columns.Add("CveTipoInvPS", GetType(Integer))
|
||||
DtInventario.Columns.Add("AplicaSerie", GetType(Boolean))
|
||||
DtInventario.Columns.Add("Serie", GetType(String))
|
||||
DtInventario.Columns.Add("AplicaLote", GetType(Boolean))
|
||||
DtInventario.Columns.Add("Lote", GetType(String))
|
||||
DtInventario.Columns.Add("AplicaCaducidad", GetType(Boolean))
|
||||
DtInventario.Columns.Add("FechaCaducidad", GetType(DateTime))
|
||||
|
||||
For Each Row As DataRow In DtMovimientos.Rows
|
||||
|
||||
Dim Cantidad As Decimal = Row("CantidadDevuelta").ToString().ToDecimal()
|
||||
Dim PU As Decimal = Row("PU").ToString().ToDecimal()
|
||||
Dim SubTotal As Decimal = Cantidad * PU
|
||||
|
||||
Dim CveUnidadMedida As Integer = 0
|
||||
Dim CveClasificacion As Integer = 0
|
||||
Dim UnidadMedida As String = ""
|
||||
Dim Clasificacion As String = ""
|
||||
Dim PS As String = ""
|
||||
Dim PorcentajeIVA As Decimal = 0
|
||||
Dim CvePS As Integer = Row("CvePS").ToString().ToEntero()
|
||||
|
||||
If CvePS > 0 Then
|
||||
Dim Dr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).Rows(0)
|
||||
Dim DrSubProyecto As DataRow = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero(String.Format("CveSubProyecto = {0}", ObjRemisionNC.CveSubProyecto))
|
||||
If Dr IsNot Nothing AndAlso DrSubProyecto IsNot Nothing Then
|
||||
CveUnidadMedida = Dr("CveUnidadMedida").ToString.ToEntero
|
||||
CveClasificacion = Dr("CveClasificacion").ToString.ToEntero
|
||||
PS = Dr("PSCodigo").ToString
|
||||
UnidadMedida = Dr("UnidadMedida").ToString
|
||||
Clasificacion = Dr("Clasificacion").ToString
|
||||
PorcentajeIVA = DrSubProyecto("IVA").ToString().ToDecimal
|
||||
|
||||
If AddPSRNC(ObjRemisionNC.DtDetalle, Cantidad, CveUnidadMedida, UnidadMedida, CveClasificacion, Clasificacion, CvePS, PS, "", PU, 0, -1, "", ObjRemisionNC.CveSubProyecto, ObjRemisionNC.SubProyecto.SubProyecto, PorcentajeIVA:=PorcentajeIVA, CveTamaño:=-1, CveVentaDetalle:=Row("CveVentaDetalle").ToString().ToEntero()) Then
|
||||
Dim RowInventario As DataRow = DtInventario.NewRow
|
||||
|
||||
RowInventario("Cantidad") = Cantidad
|
||||
RowInventario("CveVentaDetalle") = -1
|
||||
RowInventario("CvePS") = CvePS
|
||||
RowInventario("CveUM") = CveUnidadMedida
|
||||
RowInventario("PU") = PU
|
||||
RowInventario("CveTipoInvPS") = 0
|
||||
RowInventario("AplicaSerie") = Not String.IsNullOrEmpty(Row("Serie").ToString())
|
||||
RowInventario("Serie") = Row("Serie")
|
||||
RowInventario("AplicaLote") = Not String.IsNullOrEmpty(Row("Lote").ToString())
|
||||
RowInventario("Lote") = Row("Lote")
|
||||
Dim AplicaCaducidad = If(String.IsNullOrEmpty(Row("FechaCaducidad").ToString()), False, If(Row("FechaCaducidad").ToString().ToDateTime() <= MinFecha, False, True))
|
||||
RowInventario("AplicaCaducidad") = AplicaCaducidad
|
||||
RowInventario("FechaCaducidad") = Row("FechaCaducidad")
|
||||
|
||||
DtInventario.Rows.Add(RowInventario)
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
|
||||
Else
|
||||
Alert("No se pudo cargar el producto", TipoMensaje.MsgError)
|
||||
End If
|
||||
Next
|
||||
|
||||
Dim TotalImporte As Decimal = ObjRemisionNC.DtDetalle.SUM("TotalImporte").ToDecimal()
|
||||
Dim ImporteIVA As Decimal = ObjRemisionNC.DtDetalle.SUM("ImporteIVA").ToDecimal()
|
||||
Dim ImporteRetIVA As Decimal = ObjRemisionNC.DtDetalle.SUM("ImporteRetIVA").ToDecimal()
|
||||
Dim ImporteRetISR As Decimal = ObjRemisionNC.DtDetalle.SUM("ImporteRetISR").ToDecimal()
|
||||
Dim ImporteIEPS As Decimal = ObjRemisionNC.DtDetalle.SUM("ImporteIEPS").ToDecimal()
|
||||
Dim Descuento As Decimal = ObjRemisionNC.DtDetalle.SUM("Descuento").ToDecimal()
|
||||
Dim Amortizacion As Decimal = 0
|
||||
|
||||
Dim Total As Decimal = (TotalImporte + ImporteIVA + ImporteIEPS) - (ImporteRetIVA + ImporteRetISR + Descuento + Amortizacion)
|
||||
|
||||
'DETALLES
|
||||
ObjRemisionNC.SubTotal = TotalImporte
|
||||
ObjRemisionNC.Descuento = Descuento
|
||||
ObjRemisionNC.Amortizacion = Amortizacion
|
||||
ObjRemisionNC.IVA = ImporteIVA
|
||||
ObjRemisionNC.RetIVA = ImporteRetIVA
|
||||
ObjRemisionNC.RetISR = ImporteRetISR
|
||||
ObjRemisionNC.IEPS = ImporteIEPS
|
||||
ObjRemisionNC.Total = Total
|
||||
ObjRemisionNC.TotalOtrosConceptos = 0
|
||||
ObjRemisionNC.ObservacionesMovimiento = TxtObservaciones.Text
|
||||
|
||||
ObjRemisionNC.DtInventario = DtInventario
|
||||
|
||||
'Select Case DtMovimientos.FiltroPrimeroValor("CveConcepto").ToEntero()
|
||||
' Case 40
|
||||
' ObjRemisionNC.CveConceptoMovimiento = 41 ' DEVOLUCION DEL CLIENTE
|
||||
' Case 3
|
||||
' ObjRemisionNC.CveConceptoMovimiento = 18 ' DEVOLUCION DEL CLIENTE
|
||||
'End Select
|
||||
|
||||
ObjRemisionNC.CveAlmacen = DdlAlmacen.SelectedValue.ToEntero()
|
||||
|
||||
Dim CveTipoAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveAlmacen:=ObjRemisionNC.CveAlmacen).FiltroPrimeroValor("CveTipoAlmacen").ToEntero
|
||||
|
||||
Select Case CveTipoAlmacen
|
||||
Case 10
|
||||
ObjRemisionNC.CveConceptoMovimiento = 41 ' DEVOLUCION DIRECTA DEL CLIENTE
|
||||
Case Else
|
||||
ObjRemisionNC.CveConceptoMovimiento = 18 ' DEVOLUCION DEL CLIENTE
|
||||
End Select
|
||||
|
||||
End Sub
|
||||
#End Region
|
||||
|
||||
Protected Sub BtnGuardar_Click(sender As Object, e As EventArgs)
|
||||
Dim CveCliente As Integer = DdlCliente.SelectedValue.ToEntero()
|
||||
Dim CveSubProyecto As Integer = DdlSubProyecto.SelectedValue.ToEntero()
|
||||
Dim CveAlmacen As Integer = DdlAlmacen.SelectedValue.ToEntero()
|
||||
|
||||
If CveCliente <= 0 Then
|
||||
Alert("Debe seleccionar un cliente", TipoMensaje.MsgAdvertencia)
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
If CveSubProyecto <= 0 Then
|
||||
Alert("Debe seleccionar un sub proyecto", TipoMensaje.MsgAdvertencia)
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
If CveAlmacen <= 0 Then
|
||||
Alert("Debe seleccionar un almacen", TipoMensaje.MsgAdvertencia)
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
If DtMovimientos Is Nothing OrElse DtMovimientos.Rows.Count = 0 Then
|
||||
Alert("No hay producto para devolver", TipoMensaje.MsgAdvertencia)
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
Try
|
||||
CreaRemisionNC(CveCliente, CveSubProyecto)
|
||||
|
||||
If ObjRemisionNC IsNot Nothing Then
|
||||
Dim Resp = ObjRemisionNC.EmitirFactura(False)
|
||||
|
||||
If Resp.Mensajes.Count > 0 AndAlso Resp.CveVenta > 0 Then
|
||||
Dim Msg As New StringBuilder
|
||||
|
||||
If Resp.CveVenta > 0 Then
|
||||
If Resp IsNot Nothing Then
|
||||
For Each mensaje2 As String In Resp.Mensajes
|
||||
Msg.AppendFormat("<br>{0}", mensaje2)
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
|
||||
Msg.AppendFormat("<br/>El Movimiento se registro con el Folio: <b><a href='/Inventarios/EntradasSalidas.aspx?CveMovimiento={1}' target='_blank'>{0}</a></b>", Resp.FolioUsado, Resp.CveMovimientoUsado)
|
||||
Msg.AppendFormat("<br/><br/> <a class=""Texto"" target='_blank' href=""/Compras/PopUpVerFactura.aspx?P={0}"">Imprimir Movimiento</a> ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", Resp.CveMovimientoUsado)))
|
||||
|
||||
Alert(Msg.ToString(), If(Resp.TieneError, TipoMensaje.MsgError, TipoMensaje.MsgInformacion), JSBtnAceptar:="BtnRefrescarPagina();", ShowCloseButton:=False)
|
||||
|
||||
ElseIf Resp.Mensajes.Count <= 0 AndAlso Resp.CveVenta <= 0 Then
|
||||
Alert("Ocurrió un error al guardar", TipoMensaje.MsgError)
|
||||
ElseIf Resp.Mensajes.Count >= 0 AndAlso Resp.CveVenta <= 0 Then
|
||||
For Each Mensaje In Resp.Mensajes
|
||||
Alert(Mensaje, If(Resp.TieneError, TipoMensaje.MsgError, TipoMensaje.MsgInformacion), If(Resp.TieneError, "", Resp.LigaPV), ShowCloseButton:=False)
|
||||
Next
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
OnError("Ocurrió un error al guardar", ex)
|
||||
End Try
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
Protected Sub GvDatos_RowDeleting(sender As Object, e As GridViewDeleteEventArgs)
|
||||
Dim GvRow As GridViewRow = GvDatos.Rows(e.RowIndex)
|
||||
|
||||
If DtMovimientos IsNot Nothing Then
|
||||
Dim ConsecEliminar As Integer = GvRow.DataKey("Consec").ToEntero()
|
||||
If ConsecEliminar > 0 Then
|
||||
Dim RowEliminar = DtMovimientos.Select($"Consec={ConsecEliminar}")
|
||||
If RowEliminar IsNot Nothing AndAlso RowEliminar.Length > 0 AndAlso RowEliminar.Length = 1 Then
|
||||
RowEliminar(0).Delete()
|
||||
End If
|
||||
End If
|
||||
|
||||
GvDatos.DataSource = DtMovimientos
|
||||
GvDatos.DataBind()
|
||||
End If
|
||||
|
||||
UpDatos.Update()
|
||||
End Sub
|
||||
End Class
|
||||
Reference in New Issue
Block a user