Option Explicit On Option Strict On Imports System.Data 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() 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 ObjVentas As New ClsVentas If ObjVentas.GetRepPedidosSTF(DdlSubProyecto.SelectedValue.ToEntero, DdlVendedor.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then GvDatos.DataSource = ObjVentas.DtResultados End If ObjVentas.Dispose() GvDatos.DataBind() 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("{1}
", 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:
" & StrAlerta.ToString) CargaDatos() Else ObjA.RollBack() End If End Sub End Class