166 lines
7.3 KiB
VB.net
166 lines
7.3 KiB
VB.net
Option Explicit On
|
|
Option Strict On
|
|
|
|
Imports System.Data
|
|
Imports DocumentFormat.OpenXml.Office.CustomUI
|
|
Imports Extensiones
|
|
Partial Class Ventas_RepPedidosSTF
|
|
Inherits ClsPaginas
|
|
|
|
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
|
|
If Not IsPostBack Then
|
|
CargaCombos()
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub CargaCombos()
|
|
|
|
txtFechaI.Text = NowADS.FirstDayOfMonth.ToShortDateString
|
|
txtFechaF.Text = NowADS.LastDayOfMonth.ToShortDateString
|
|
|
|
CargarCentrosDeCosto(DdlProyecto, DdlSubProyecto, LblProyecto, LblSubProyecto, divProyecto:=DivProyecto)
|
|
|
|
'Vendedor
|
|
DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa, VendedorTipo:=-1).FiltraParametros("VendedorTipo in (1,4)") 'vendedores y vendedores de piso
|
|
DdlVendedor.DataBind()
|
|
DdlVendedor.Items.Insert(0, New ListItem("Todos", "-1"))
|
|
DdlVendedor.Items.Insert(1, New ListItem("Sin Vendedor", "-2"))
|
|
|
|
If UsuarioActual.CveVendedor > 0 Then
|
|
DdlVendedor.SelectedValueExist(UsuarioActual.CveVendedor)
|
|
DdlVendedor.Enabled = False
|
|
End If
|
|
End Sub
|
|
|
|
Protected Sub CargaDatos()
|
|
|
|
Dim Opcion As Integer = 1
|
|
Dim FechaInicio As Date = MinFecha
|
|
Dim FechaFin As Date = MaxFecha
|
|
|
|
If TabG.ActiveTabIndex = 1 Then ' entregados
|
|
Opcion = 2
|
|
FechaInicio = txtFechaI.Text.ToDate
|
|
FechaFin = txtFechaF.Text.ToDate
|
|
Dim ObjVentas As New ClsVentas
|
|
If ObjVentas.GetRepPedidosSTF(DdlSubProyecto.SelectedValue.ToEntero, DdlVendedor.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, Opcion, FechaInicio, FechaFin) Then
|
|
GvE.DataSource = ObjVentas.DtResultados
|
|
End If
|
|
ObjVentas.Dispose()
|
|
GvE.DataBind()
|
|
Else
|
|
Dim ObjVentas As New ClsVentas
|
|
If ObjVentas.GetRepPedidosSTF(DdlSubProyecto.SelectedValue.ToEntero, DdlVendedor.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, Opcion, FechaInicio, FechaFin) Then
|
|
GvDatos.DataSource = ObjVentas.DtResultados
|
|
End If
|
|
ObjVentas.Dispose()
|
|
GvDatos.DataBind()
|
|
End If
|
|
|
|
|
|
End Sub
|
|
Protected Sub GvDatos_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvDatos.RowDataBound
|
|
If e.Row.RowType = DataControlRowType.DataRow Then
|
|
|
|
If e.Row.DBCampo("CveVendedor") = "" Then e.Row.FCCheckBox("Chk").Visible = False
|
|
|
|
End If
|
|
End Sub
|
|
Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs)
|
|
CargaDatos()
|
|
UPDatos.Update()
|
|
End Sub
|
|
|
|
Protected Sub BtnEntregar_Click(sender As Object, e As EventArgs)
|
|
'validar que están seleccionados
|
|
Dim TmpDTRemis As New DataTable
|
|
TmpDTRemis.Columns.Add("CveVentaDetalle", GetType(Integer))
|
|
TmpDTRemis.Columns.Add("CveCliente", GetType(Integer))
|
|
TmpDTRemis.Columns.Add("CveSubProyecto", GetType(Integer))
|
|
TmpDTRemis.Columns.Add("CvePS", GetType(Integer))
|
|
TmpDTRemis.Columns.Add("Cantidad", GetType(Decimal))
|
|
TmpDTRemis.Columns.Add("CveUnidadMedida", GetType(Integer))
|
|
TmpDTRemis.Columns.Add("PU", GetType(Decimal))
|
|
TmpDTRemis.Columns.Add("CveVendedor", GetType(Decimal))
|
|
TmpDTRemis.Columns.Add("GastosEnvio", GetType(Decimal))
|
|
'agruparo por cliente
|
|
For Each gvr As GridViewRow In GvDatos.Rows
|
|
If gvr.FCCheckBox("chk").Checked Then
|
|
Dim drp As DataRow = TmpDTRemis.NewRow
|
|
drp("CvePS") = gvr.DataKey("CvePS").ToEntero
|
|
drp("Cantidad") = gvr.DataKey("Cantidad").ToDecimal
|
|
drp("PU") = gvr.DataKey("PU").ToDecimal
|
|
drp("CveUnidadMedida") = gvr.DataKey("CveUnidadMedida").ToEntero
|
|
drp("CveSubProyecto") = gvr.DataKey("CveSubProyecto").ToEntero
|
|
drp("CveCliente") = gvr.DataKey("CveCliente").ToEntero
|
|
drp("CveVendedor") = gvr.DataKey("CveVendedor").ToEntero
|
|
drp("CveVentaDetalle") = gvr.DataKey("CveVentaDetalle").ToEntero
|
|
drp("GastosEnvio") = gvr.DataKey("GastosEnvio").ToDecimal
|
|
TmpDTRemis.Rows.Add(drp)
|
|
End If
|
|
Next
|
|
|
|
If TmpDTRemis IsNot Nothing AndAlso TmpDTRemis.Rows.Count = 0 Then
|
|
Alert("No se ha seleccionado ninguna partida, favor de seleccionar", TipoMensaje.MsgAdvertencia)
|
|
Exit Sub
|
|
End If
|
|
|
|
Dim ObjA As New ClsInventarios
|
|
ObjA.IniciaTransacSQL()
|
|
Dim TieneError As Boolean = False
|
|
Dim StrAlerta As New StringBuilder
|
|
|
|
For Each drt As DataRow In TmpDTRemis.FiltraParametros("", DistinctColumns:={"CveCliente", "CveSubProyecto", "CveVendedor", "GastosEnvio"}).Rows
|
|
|
|
Dim ObjFactura As Modelos.Factura = Modelos.Factura.CrearVentaNueva(UsuarioActual, drt("CveSubProyecto").ToString.ToEntero, drt("CveCliente").ToString.ToEntero, 1, "Rem")
|
|
ObjFactura.CveVendedor = drt("CveVendedor").ToString.ToEntero
|
|
For Each dr As DataRow In TmpDTRemis.FiltraParametros($"CveCliente ={drt("CveCliente")} AND CveVendedor = {drt("CveVendedor")} AND CveSubProyecto = {drt("CveSubProyecto")}").Rows
|
|
|
|
If ObjFactura IsNot Nothing Then
|
|
If Not ObjFactura.AgregarPS(dr("CvePS").ToString.ToEntero, dr("Cantidad").ToString.ToDecimal, dr("PU").ToString.ToDecimal, 0, "", CveSubProyecto:=dr("CveSubProyecto").ToString.ToEntero, CveVentaDetallePadre:=dr("CveVentaDetalle").ToString.ToEntero) Then
|
|
Alert("Error al agregar producto", TipoMensaje.MsgAdvertencia)
|
|
TieneError = True
|
|
Exit For
|
|
Else
|
|
If Not ObjA.UpdateEstatusAlmacen(dr("CveVentaDetalle").ToString.ToEntero, 0) Then
|
|
TieneError = True
|
|
End If
|
|
End If
|
|
End If
|
|
Next
|
|
|
|
If drt("GastosEnvio").ToString.ToDecimal > 0 Then
|
|
Dim tCvePSEnvio As Integer = usuarioactual.empresa.Funcionalidad(160).toentero
|
|
If Not ObjFactura.AgregarPS(tCvePSEnvio, 1, drt("GastosEnvio").ToString.ToDecimal, 0, "", CveSubProyecto:=drt("CveSubProyecto").ToString.ToEntero) Then
|
|
TieneError = True
|
|
End If
|
|
End If
|
|
|
|
If Not TieneError Then
|
|
ObjFactura.CalculaTotales()
|
|
Dim Resp As New Modelos.Factura.MMensajeFactura
|
|
Resp = ObjFactura.EmitirFactura(False, Transac:=ObjA.IniciaTransacSQL)
|
|
|
|
If Resp.CveVenta > 0 Then
|
|
Dim a As String = "a"
|
|
StrAlerta.AppendFormat("<a href = '/Ventas/Ventas.aspx?CveVenta={0}' class='Texto'>{1}</a><br/>", Resp.CveVenta, Resp.SerieFolio)
|
|
'Respuesta.CveVenta = Resp.CveVenta
|
|
'Respuesta.SerieFolio = Resp.SerieFolio
|
|
'Respuesta.dtdetalle = TmpDTMat
|
|
Else
|
|
TieneError = True
|
|
End If
|
|
End If
|
|
Next
|
|
|
|
If Not TieneError Then
|
|
ObjA.Commit()
|
|
Alert("Se registraron las siguientes remisiones: <br/>" & StrAlerta.ToString)
|
|
CargaDatos()
|
|
Else
|
|
ObjA.RollBack()
|
|
End If
|
|
|
|
End Sub
|
|
End Class
|