880 lines
42 KiB
VB.net
880 lines
42 KiB
VB.net
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
|