Imports System.Data Imports Extensiones Partial Class OC_CotizacionEnvio Inherits ClsPaginas #Region "Propiedades" Private Property CveOrdenCompra As Integer Get CveOrdenCompra = ViewState("CveOrdenCompra").ToString.ToEntero End Get Set(value As Integer) ViewState("CveOrdenCompra") = value End Set End Property Private Property DtEnvio As DataTable Get DtEnvio = DirectCast(ViewState("DtEnvio"), DataTable) End Get Set(ByVal value As DataTable) ViewState("DtEnvio") = value End Set End Property Private Property DtColectivas As DataTable Get DtColectivas = DirectCast(ViewState("DtColectivas"), DataTable) End Get Set(ByVal value As DataTable) ViewState("DtColectivas") = value End Set End Property #End Region #Region "C A R G A D A T O S" Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load If Not Page.IsPostBack Then 'CType(Me.Master, Site).EsPopup = True RegistraScript("$get('tdContenido').style.height='500px'") If Request("CveOrdenCompra") IsNot Nothing AndAlso IsNumeric(Request("CveOrdenCompra")) AndAlso Request("CveOrdenCompra").ToEntero > 0 Then ViewState("CveOrdenCompra") = Request("CveOrdenCompra") CargaDatos() Else Alert("Error en CveOC", TipoMensaje.MsgError) End If End If End Sub Protected Sub CargaDatos() CargaProveedoresClasificaciones() CargaProveedores() CargaColectivas() CreaDTEnvio() End Sub Private Sub CreaDTEnvio() DtEnvio = New DataTable DtEnvio.Columns.Add("Tipo", GetType(String)) DtEnvio.Columns.Add("CveProveedorClasificacion", GetType(Integer)) DtEnvio.Columns.Add("ProveedorClasificacion", GetType(String)) DtEnvio.Columns.Add("CveProveedor", GetType(Integer)) DtEnvio.Columns.Add("RazonSocial", GetType(String)) DtEnvio.Columns.Add("RFC", GetType(String)) DtEnvio.Columns.Add("ContactoMail", GetType(String)) End Sub Protected Sub CargaProveedoresClasificaciones() CboProveedorClasificacion.DataSource = GlobalDTProveedorClasificacion(UsuarioActual.CveEmpresa) CboProveedorClasificacion.DataBind() CboProveedorClasificacion.Items.Insert(0, New ListItem("Clasificacion de Proveedor", "-1")) End Sub Protected Sub CboProveedorClasificacion_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CboProveedorClasificacion.SelectedIndexChanged CargaProveedores() End Sub Protected Sub CargaProveedores() CboProveedor.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveProveedorClasificacion = {0} OR {0} = -1", CboProveedorClasificacion.SelectedValue)) CboProveedor.DataBind() CboProveedor.Items.Insert(0, New ListItem("Seleccione", "-1")) End Sub Protected Sub CargaColectivas() Dim objColectiva As New ClsGenerales If objColectiva.GetColectivas(-1, "-1", "-1", "1", UsuarioActual.CveEmpresa) Then DtColectivas = objColectiva.DtResultados ddlColectiva.DataSource = DtColectivas ddlColectiva.DataBind() ddlColectiva.Items.Insert(0, New ListItem("Seleccione la Colectiva", "-1")) ddlColectiva.Items.Insert(1, New ListItem("AGREGAR NUEVO", "0")) End If objColectiva.Dispose() End Sub #End Region Protected Sub ddlColectiva_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlColectiva.SelectedIndexChanged If ddlColectiva.SelectedValue = "0" Then txtColectiva.Enabled = True Else txtColectiva.Enabled = False txtContactoMailColectiva.Text = If(Not IsDBNull(DtColectivas.FiltraParametros(String.Format("CveColectiva = {0}", ddlColectiva.SelectedValue))(0)("Correo")), DtColectivas.FiltraParametros(String.Format("CveColectiva = {0}", ddlColectiva.SelectedValue))(0)("Correo").ToString, "") txtRFCColectiva.Text = If(Not IsDBNull(DtColectivas.FiltraParametros(String.Format("CveColectiva = {0}", ddlColectiva.SelectedValue))(0)("Correo")), DtColectivas.FiltraParametros(String.Format("CveColectiva = {0}", ddlColectiva.SelectedValue))(0)("RFC").ToString, "") End If End Sub Protected Sub CboProveedor_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CboProveedor.SelectedIndexChanged txtContactoMail.Text = GlobalDTCompProveedores(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveProveedor = {0}", CboProveedor.SelectedValue)).Rows(0)("ContactoMail").ToString txtRFC.Text = GlobalDTCompProveedores(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveProveedor = {0}", CboProveedor.SelectedValue)).Rows(0)("RFC").ToString End Sub Protected Sub ImgAddDetalle_Click(sender As Object, e As ImageClickEventArgs) Handles ImgAddDetalle.Click If CboProveedor.SelectedValue.ToEntero <= 0 Then Alert("Seleccione proveedor", TipoMensaje.MsgAdvertencia) Exit Sub End If If DtEnvio IsNot Nothing Then If DtEnvio.FiltraParametros(String.Format("CveProveedor = {0}", CboProveedor.SelectedItem.Value)).Rows.Count = 0 Then Dim Clasif As String = "" If CboProveedorClasificacion.SelectedItem.Value.ToEntero > 0 Then Clasif = CboProveedorClasificacion.SelectedItem.Text Else Dim drt As DataRow drt = GlobalDTCompProveedores(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveProveedor = {0}", CboProveedor.SelectedValue)).Rows(0) If drt IsNot Nothing Then Dim dtt As DataTable = GlobalDTProveedorClasificacion(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveProveedorClasificacion = {0}", drt("CveProveedorClasificacion").ToString())) If dtt IsNot Nothing AndAlso dtt.Rows.Count > 0 Then Clasif = dtt.Rows(0)("ProveedorClasificacion").ToString() End If End If End If Dim dr As DataRow = DtEnvio.NewRow dr("Tipo") = "PROVEEDOR" dr("ProveedorClasificacion") = Clasif dr("CveProveedorClasificacion") = CboProveedorClasificacion.SelectedItem.Value dr("RazonSocial") = CboProveedor.SelectedItem.Text dr("CveProveedor") = CboProveedor.SelectedItem.Value dr("RFC") = txtRFC.Text dr("ContactoMail") = txtContactoMail.Text DtEnvio.Rows.Add(dr) GvProveedores.DataSource = DtEnvio.FiltraParametros("", "Tipo, ProveedorClasificacion") GvProveedores.DataBind() End If End If End Sub Protected Sub ImgAddDetalleColectiva_Click(sender As Object, e As ImageClickEventArgs) Handles ImgAddDetalleColectiva.Click If DtEnvio IsNot Nothing Then ' If DtEnvio.FiltraParametros(String.Format("CveProveedor = {0}", CboProveedor.SelectedItem.Value)).Rows.Count = 0 Then Dim dr As DataRow = DtEnvio.NewRow dr("Tipo") = "COLECTIVA" dr("ProveedorClasificacion") = "-1" dr("CveProveedorClasificacion") = -1 dr("RazonSocial") = If(ddlColectiva.SelectedValue.ToEntero = 0, txtColectiva.Text, ddlColectiva.SelectedItem.Text) dr("CveProveedor") = ddlColectiva.SelectedItem.Value dr("RFC") = txtRFCColectiva.Text dr("ContactoMail") = txtContactoMailColectiva.Text DtEnvio.Rows.Add(dr) GvProveedores.DataSource = DtEnvio.FiltraParametros("", "Tipo, ProveedorClasificacion") GvProveedores.DataBind() 'End If ddlColectiva.SelectedIndex = 0 txtColectiva.Text = "" txtContactoMailColectiva.Text = "" End If End Sub Protected Sub GvProveedores_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles GvProveedores.RowDeleting Dim DbRow As DataRow = Nothing DbRow = DtEnvio.Rows(e.RowIndex) DtEnvio.Rows.Remove(DbRow) GvProveedores.DataSource = DtEnvio GvProveedores.DataBind() End Sub Protected Sub btnEnviar_Click(sender As Object, e As EventArgs) Handles btnEnviar.Click If DtEnvio IsNot Nothing AndAlso DtEnvio.Rows.Count = 0 Then Alert("Agregue invitaciones a la solicitud", TipoMensaje.MsgAdvertencia) Exit Sub End If Dim OrdenCotizacion As New List(Of Integer) Dim Correo As New List(Of String)() ' Dim RFC As New List(Of String)() Dim TieneError As Boolean = False Dim objCotizacion As New ClsOC Dim objColectiva As New ClsGenerales(objCotizacion.IniciaTransacSQL()) Try Dim CveProveedor As Integer = -1 Dim CveColectiva As Integer = -1 Dim i As Integer = 0 For Each Row As GridViewRow In GvProveedores.Rows CveProveedor = If(GvProveedores.Rows(Row.RowIndex).DataKey("Tipo") = "PROVEEDOR", GvProveedores.Rows(Row.RowIndex).DataKey("CveProveedor").ToEntero, -1) CveColectiva = If(GvProveedores.Rows(Row.RowIndex).DataKey("Tipo") = "COLECTIVA", GvProveedores.Rows(Row.RowIndex).DataKey("CveProveedor").ToEntero, -1) ' RFC.Add(GvProveedores.Rows(Row.RowIndex).DataKey("RFC")) Correo.Add(GvProveedores.Rows(Row.RowIndex).DataKey("ContactoMail")) 'Ingresar la colectiva si es que no existe If CveColectiva = 0 Then If objColectiva.AddColectivas(GvProveedores.Rows(Row.RowIndex).DataKey("RazonSocial").ToString, "", GvProveedores.Rows(Row.RowIndex).DataKey("RFC").ToString, "", "", GvProveedores.Rows(Row.RowIndex).DataKey("ContactoMail").ToString, -1, "", "1", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then CveColectiva = objColectiva.CveColectiva Else TieneError = True Exit For End If End If If TieneError = False Then If objCotizacion.AddCotizacion(CveOrdenCompra, CveProveedor, CveColectiva, "-1", "-1", "", 1, 0, 0) Then 'Cargar los detalles de la cotizacion If objCotizacion.GetOrdenesDetalle(CveOrdenCompra) Then 'Agrega CveCotizacion a la lista OrdenCotizacion.Add(objCotizacion.CveCotizacion) For Each RowCD As DataRow In objCotizacion.DtResultados.Rows If Not objCotizacion.AddCotizacionDetalle(objCotizacion.CveCotizacion, RowCD("CvePS").ToString.ToEntero, -1, RowCD("Cantidad").ToString.ToDouble, RowCD("CveUnidadMedida").ToString.ToEntero, 0, "-1", "", RowCD("CveOrdenCompraDetalle").ToString.ToEntero) Then TieneError = True : Exit For Next 'If TieneError = False Then ' Dim Body As String = GeneraCorreo(objCotizacion.CveCotizacion, objCotizacion) ' 'ViewState("Para") = Correo ' 'ViewState("Asunto") = "SIG - Solicitud de Cotizacion" ' 'ViewState("Body") = Body ' 'Dim Hilo As New System.Threading.Thread(AddressOf MandaCorreo) ' 'Hilo.Start() 'End If Else TieneError = True Exit For End If Else TieneError = True Exit For End If End If Next Catch ex As Exception OnError("Ocurrió error al mandar MAIL", ex) objCotizacion.RollBack() Finally If TieneError = False Then objCotizacion.Commit() Alert("Correo de Solicitud Enviado.", TipoMensaje.MsgInformacion) Else objCotizacion.RollBack() End If If TieneError = False Then Dim Body As String For i = 0 To Correo.Count - 1 'Dim Body As String = GeneraCorreo(objCotizacion.CveCotizacion, objCotizacion) Body = GeneraCorreo(OrdenCotizacion(i), objCotizacion) ViewState("Para") = Correo(i) ViewState("Asunto") = "SIG - Solicitud de Cotizacion" ViewState("Body") = Body Dim Hilo As New System.Threading.Thread(AddressOf MandaCorreo) Hilo.Start() Next End If objCotizacion.Dispose() End Try RegistraScript("Ir();") End Sub #Region " C O R R E O " Private Sub MandaCorreo() Dim Mail As New ClsSisMail() ' Mail.MandaCorreo(ClsPaginas.EmpresaNotificaciones, ViewState("Para").ToString, ViewState("Asunto").ToString, ViewState("Body").ToString) Mail.SendMail(ClsPaginas.EmpresaNotificaciones, ViewState("Para").ToString, ViewState("Asunto").ToString, ViewState("Body").ToString) End Sub Private Function GeneraCorreo(CveCotizacion As Integer, objOC As ClsOC) As String objOC.GetOC(CveOrdenCompra, UsuarioActual.CveEmpresa) Dim strBody As New StringBuilder strBody.Append(" ") strBody.Append("
") strBody.Append(" ") strBody.Append(" ") strBody.Append(" ") strBody.Append("