RepServiciosDomicilio, asignar ordenes, Compras autoseleccion de alamcenes

This commit is contained in:
Oscar Irigoyen
2022-10-17 09:51:43 -07:00
parent 886fae03ce
commit 2342f39ba8
4 changed files with 629 additions and 35 deletions

View File

@@ -1594,6 +1594,8 @@ Partial Class Compras_Compras
NCSeleccionFacturasRelacionadas(UUIDSList)
End If
End If
'SE OCUPAN AFUERA DEL POSTBACK ??
@@ -10768,6 +10770,19 @@ Partial Class Compras_Compras
'e.Row.FCDropDownList("ddlEAlmacen").SelectedValue = If(e.Row.DBCampo("CveAlmacen").ToEntero <= 0, "-1", e.Row.DBCampo("CveAlmacen"))
If UsuarioActual.Empresa.UsaAC Then e.Row.FCDropDownList("ddlEAlmacen").Enabled = False
If UsuarioActual.Empresa.Funcionalidad(567) = "1" Then
If e.Row.FCDropDownList("ddlEAlmacen").Items.Count > 1 Then
e.Row.FCDropDownList("ddlEAlmacen").SelectedIndex = 1
e.Row.FCCheckBox("cbInv").Checked = True
ddlAlmacenConsignacion_SelectedIndexChanged(e.Row.FCDropDownList("ddlEAlmacen"), Nothing)
CambiaTotalDevengar(Nothing, Nothing)
End If
End If
If Not e.Row.DBCampo("CveMetodoInventario").ToString = "5" Then
e.Row.FCTextBox("TbCantidad").Attributes.Add("onblur", String.Format("ValidarCantidad(this,{0})", If(e.Row.DBCampo("CantidadF").ToString.ToDecimal > e.Row.DBCampo("Cantidad").ToString.ToDecimal, e.Row.DBCampo("Cantidad"), e.Row.DBCampo("CantidadF"))))
e.Row.FCTextBox("TbCantidad").Text = If(e.Row.DBCampo("CantidadF").ToString.ToDecimal > e.Row.DBCampo("Cantidad").ToString.ToDecimal, e.Row.DBCampo("Cantidad"), e.Row.DBCampo("CantidadF"))

View File

@@ -926,7 +926,7 @@
</Style>
</TextRun>
<TextRun>
<Value xml:space="preserve"> </Value>
<Value xml:space="preserve"> </Value>
<Style>
<FontStyle>Normal</FontStyle>
<FontFamily>calibri</FontFamily>
@@ -980,6 +980,9 @@
<Left>0.01938in</Left>
<Height>0.64213in</Height>
<Width>7.82181in</Width>
<Visibility>
<Hidden>true</Hidden>
</Visibility>
<Style>
<Border>
<Style>None</Style>
@@ -1394,7 +1397,7 @@
<Width>20.06179cm</Width>
<ZIndex>10</ZIndex>
<Visibility>
<Hidden>= (Parameters!AplicaPagare.Value="0" OrElse Parameters!AplicaPagare.Value="")</Hidden>
<Hidden>true</Hidden>
</Visibility>
<Style>
<Border>
@@ -3259,7 +3262,7 @@
<Paragraph>
<TextRuns>
<TextRun>
<Value>Éste documento es una representacion impresa de un CFDi</Value>
<Value>Éste documento es una representacion impresa de un CFDi </Value>
<Style>
<FontSize>9pt</FontSize>
</Style>

View File

@@ -1,5 +1,8 @@
<%@ Page Title="Reporte Servicio a Domicilio" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RepServicioDomicilio.aspx.vb" Inherits="OS_RepServicioDomicilio" %>
<%@ Register Assembly="TimePicker" Namespace="MKB.TimePicker" TagPrefix="cc1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
@@ -87,19 +90,6 @@
height: 150px !important;
}
/*#overlay a:hover {
position: fixed;
display: none;
width: 100%;
height: 100%;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: rgba(0,0,0,0.5);
z-index: 2;
cursor: pointer;
}*/
#moopio a {
@@ -137,8 +127,6 @@
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="UPFiltros" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter">
@@ -159,9 +147,7 @@
<div class="col-md-2">
<asp:DropDownList ID="DdlSubProyecto" ClientIDMode="Static" DataValueField="CveSubProyecto" DataTextField="SubProyecto" runat="server" CssClass="form-control select2me" Width="150px" AppendDataBoundItems="true"></asp:DropDownList>
</div>
</div>
</div>
</div>
@@ -177,6 +163,24 @@
<br />
<asp:UpdatePanel runat="server" ID="UpOrdenesSinAsignar" UpdateMode="Conditional" >
<ContentTemplate>
<div class="row" runat="server" id="DVOSPendientes" visible="false">
<div class="col-md-1">
Orden de Servicio:
</div>
<div class="col-md-4">
<asp:DropDownList runat="server" ID="DdlOrdenesSinAsignar" CssClass="select2me" DataValueField="CveOSDetalle" DataTextField="ConceptoDdl" Width="100%"></asp:DropDownList>
</div>
<div class="col-md-2">
<asp:LinkButton runat="server" ID="LnkOrdenesSinAsignarMostarModal" CssClass="Texto" OnClick="LnkOrdenesSinAsignarMostarModal_Click">Asignar</asp:LinkButton>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<div class="row">
<div class="col-md-12 col-sm-12">
@@ -411,6 +415,99 @@
<div id="DVModalOSAsginar" class="modal ADS fade" role="dialog">
<asp:UpdatePanel class="modal-dialog" runat="server" ID="UpModalOSAsginar" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-content">
<div class="modal-header ">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">Asignar Orden de Servicio</h4>
</div>
<div class="modal-body" >
<div class="row">
<div class="col-md-12">
<div class="form-group form-md-line-input">
<asp:Label runat="server" ID="LblModalCliente" Text="" CssClass="form-control"></asp:Label>
<label for="<%= LblModalCliente.ClientID.ToString()%>">Cliente: </label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="form-group form-md-line-input">
<asp:Label runat="server" ID="LblModalConcepto" Text="" CssClass="form-control"></asp:Label>
<label for="<%= LblModalConcepto.ClientID.ToString()%>">Concepto: </label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="form-group form-md-line-input">
<asp:Label runat="server" ID="LblModalSubProyecto" Text="" CssClass="form-control"></asp:Label>
<label for="<%= LblModalSubProyecto.ClientID.ToString()%>"><asp:Label runat="server" ID="LblModalSubProyectoLabel"></asp:Label>: </label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group form-md-line-input">
<asp:DropDownList ID="DdlTecnicoAsignar" Width="100%" runat="server" CssClass="form-control select2me" DataTextField="Nombre" Visible="true" DataValueField="CveUsuario">
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RfvDdlTecnicoAsignar" InitialValue="-1" runat="server" ControlToValidate="DdlTecnicoAsignar" Display="None"
ErrorMessage="El campo <b>''Técnico''</b> es requerido por la aplicación" ValidationGroup="GrpAsignar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCERfvDdlTecnicoAsignar" runat="server" HighlightCssClass="vco" TargetControlID="RfvDdlTecnicoAsignar" Width="350px"></ajax:ValidatorCalloutExtender>
<label for="<%= DdlTecnicoAsignar.ClientID.ToString()%>">Técnico: </label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group form-md-line-input input-iconright date date-picker date date-picker" style="width:150px">
<asp:TextBox ID="TxtModalFechaOS" CssClass="form-control" runat="server" Width="150px"></asp:TextBox>
<span class="input-group-btn " style="position: absolute; right: 41px; top: 9px;">
<asp:LinkButton ID="LnkTxtModalFechaOS" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="METxtModalFechaOS" runat="server" TargetControlID="TxtModalFechaOS" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CETxtModalFechaOS" TargetControlID="TxtModalFechaOS" PopupButtonID="LnkTxtModalFechaOS" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="RfvTxtModalFechaOS" runat="server" ControlToValidate="TxtModalFechaOS" Display="None"
ErrorMessage="El campo <b>''Fecha''</b> es requerido por la aplicación" ValidationGroup="GrpAsignar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VceRfvTxtModalFechaOS" runat="server" HighlightCssClass="vco" TargetControlID="RfvTxtModalFechaOS" Width="350px"></ajax:ValidatorCalloutExtender>
<label for="<%= TxtModalFechaOS.ClientID.ToString()%>">Fecha: </label>
</div>
</div>
<div class="col-md-6">
<div class="form-group form-md-line-input">
<cc1:TimeSelector ID="TSTimeSelector" runat="server" DisplaySeconds="false" DisplayButtons="false" Visible="true" CssClass="form-control" Font-Size="13pt"></cc1:TimeSelector>
<label for="<%= TSTimeSelector.ClientID.ToString()%>">Hora Servicio: </label>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<asp:LinkButton runat="server" ID="LnkModalAsignar" CssClass="btn btn-success" Text="Asignar" OnClick="LnkModalAsignar_Click" ValidationGroup="GrpAsignar" ></asp:LinkButton>
<button type="button" class="btn btn-default" data-dismiss="modal">Cerrar</button>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
@@ -454,10 +551,7 @@
function selectDate(start, end, allDay) {
$('#ModalAgenda').modal('show');
$("#SpanTituloAgenda").html("Agregar Evento");;
//$("#< %=BtnGuardar.ClientID%>").val('Guardar');
//$("#< %=BtnEliminar.ClientID%>").css("display", "none");
$("#SpanTituloAgenda").html("Agregar Evento");
$("#HdnCveEvento").val(-1);
@@ -490,9 +584,7 @@
function updateEvent(event, element) {
$('#ModalAgenda').modal('show');
//$("#SpanTituloAgenda").html("Actualizar Evento");;
//$("#< %=BtnGuardar.ClientID%>").val('Actualizar');
//$("#< %=BtnEliminar.ClientID%>").css("display", "");
$("#DivDescripcionUpdate").css("display", "block");
$("#<%=TxtDescripcionAgenda.ClientID%>").css("display", "none");
@@ -520,8 +612,7 @@
$("#TxtFechaFinAgenda").val("" + event.end.format("DD/MM/YYYY HH:mm"));
//Identifica el tipo de Fecha Termino de la Recurrencia
if (event.recurrenciafin == 0) {
//$("#RBSinFechaFinUpdate").prop('checked', true);
if (event.recurrenciafin == 0) {
$("#TxtFrecuencia").val('0');
} else if (!isNaN(event.recurrenciafin)) {
$("#RBNumeroOcurrencias").prop('checked', true);
@@ -776,7 +867,7 @@
select: selectDate,
editable: true,
minTime: "08:00:00",
maxTime: "17:00:00",
maxTime: "19:00:00",
events: {
url: '/Ashx/CargaEventos.ashx',
type: 'GET',

View File

@@ -5,6 +5,8 @@ Imports Extensiones
Imports System.Data
Imports Microsoft.Reporting.WebForms
Imports System.Web.Services
Imports Telerik.Web.UI
Imports APP_Code_CSharp
Partial Class OS_RepServicioDomicilio
Inherits ClsPaginas
@@ -59,6 +61,126 @@ Partial Class OS_RepServicioDomicilio
End Property
Private Property DT_OSSubProyectos As DataTable
Get
If ViewState("DT_OSSubProyectos") Is Nothing Then
ViewState("DT_OSSubProyectos") = New DataTable
End If
Return DirectCast(ViewState("DT_OSSubProyectos"), DataTable)
End Get
Set(value As DataTable)
ViewState("DT_OSSubProyectos") = value
End Set
End Property
Private Property DT_OSNoAsignadas As DataTable
Get
If ViewState("DT_OSNoAsignadas") Is Nothing Then
ViewState("DT_OSNoAsignadas") = New DataTable
End If
Return DirectCast(ViewState("DT_OSNoAsignadas"), DataTable)
End Get
Set(value As DataTable)
ViewState("DT_OSNoAsignadas") = value
End Set
End Property
Private Property CveOSDetalleAsignar As Integer
Get
If ViewState("CveOSDetalleAsignar") Is Nothing Then
ViewState("CveOSDetalleAsignar") = -1
End If
Return ViewState("CveOSDetalleAsignar").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveOSDetalleAsignar") = value
End Set
End Property
Private Property CveSubProyectoAsignar As Integer
Get
If ViewState("CveSubProyectoAsignar") Is Nothing Then
ViewState("CveSubProyectoAsignar") = -1
End If
Return ViewState("CveSubProyectoAsignar").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveSubProyectoAsignar") = value
End Set
End Property
Private Property CveOSAsignar As Integer
Get
If ViewState("CveOSAsignar") Is Nothing Then
ViewState("CveOSAsignar") = -1
End If
Return ViewState("CveOSAsignar").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveOSAsignar") = value
End Set
End Property
Private Property FolioAsignar As String
Get
If ViewState("FolioAsignar") Is Nothing Then
ViewState("FolioAsignar") = ""
End If
Return ViewState("FolioAsignar").ToString
End Get
Set(value As String)
ViewState("FolioAsignar") = value
End Set
End Property
Private Property ConceptoAsignar As String
Get
If ViewState("ConceptoAsignar") Is Nothing Then
ViewState("ConceptoAsignar") = ""
End If
Return ViewState("ConceptoAsignar").ToString
End Get
Set(value As String)
ViewState("ConceptoAsignar") = value
End Set
End Property
Private Property ClienteAsignar As String
Get
If ViewState("ClienteAsignar") Is Nothing Then
ViewState("ClienteAsignar") = ""
End If
Return ViewState("ClienteAsignar").ToString
End Get
Set(value As String)
ViewState("ClienteAsignar") = value
End Set
End Property
Private Property SubProyectoAsignar As String
Get
If ViewState("SubProyectoAsignar") Is Nothing Then
ViewState("SubProyectoAsignar") = ""
End If
Return ViewState("SubProyectoAsignar").ToString
End Get
Set(value As String)
ViewState("SubProyectoAsignar") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
@@ -66,12 +188,14 @@ Partial Class OS_RepServicioDomicilio
CargarCentrosDeCosto(Nothing, DdlSubProyecto, Nothing, LblSubProyectoEtiqueta)
LblSubProyectoFiltro.Text = LblSubProyectoEtiqueta.Text
DdlTecnico.DataSource = GlobalDTUsuarios(CveEmpresa:=UsuarioActual.CveEmpresa)
DdlTecnico.DataBind()
DdlTecnico.Items.Insert(0, New ListItem("Todos", "-1"))
LblModalSubProyectoLabel.Text = LblSubProyectoEtiqueta.Text
CargaTecnicos()
ConsultaOrdenesServiciosNoAsignadas()
CargaOrdenesServiciosNoAsignadas()
CargaTecnicosAsignar()
InicializaCalendar()
End If
End Sub
@@ -115,6 +239,46 @@ Partial Class OS_RepServicioDomicilio
ObjEventos.Dispose()
End Sub
Private Sub CargaTecnicos()
DdlTecnico.DataSource = GlobalDTUsuarios(CveEmpresa:=UsuarioActual.CveEmpresa)
DdlTecnico.DataBind()
DdlTecnico.Items.Insert(0, New ListItem("Todos", "-1"))
End Sub
Private Sub CargaTecnicosAsignar()
Dim ObjOS As New ClsOS
Dim TecnicosSubProyectos As New DataTable
Dim TecnicosResultado As New DataTable
If ObjOS.GetSubProyectosEstatusInicial(-1, 3, UsuarioActual.CveEmpresa) Then
TecnicosSubProyectos = ObjOS.DtResultados
End If
For Each SubProyecto As DataRow In DT_OSSubProyectos.Rows
Dim TecnicosSubProyectoAux As DataTable = TecnicosSubProyectos.FiltraParametros(String.Format("SubProyecto = '{0}'", SubProyecto.Item("SubProyecto")))
If TecnicosSubProyectoAux.Rows.Count > 0 Then
Dim EstatusDeTipoProcesoMenor As Integer = TecnicosSubProyectoAux.Rows(0).Item("CveEstatusOrdenServicio").ToString.ToEntero
Dim dtAuxiliar As New DataTable
dtAuxiliar = TecnicosSubProyectos.FiltraParametros(String.Format("SubProyecto = '{0}' AND CveEstatusOrdenServicio = {1}", SubProyecto.Item("SubProyecto"), EstatusDeTipoProcesoMenor), "", {"CveUsuario", "Nombre"})
TecnicosResultado.Merge(dtAuxiliar)
End If
Next
'DtTecnicosSubProyectos = TecnicosResultado
ObjOS.Dispose()
DdlTecnicoAsignar.DataSource = TecnicosResultado
DdlTecnicoAsignar.DataBind()
DdlTecnicoAsignar.Items.Insert(0, New ListItem("Seleccione uno", "-1"))
UpModalOSAsginar.Update()
End Sub
Protected Sub BtnGuardar_Click(sender As Object, e As EventArgs)
Dim ObjEventos As New ClsOIEventos
@@ -281,4 +445,325 @@ Partial Class OS_RepServicioDomicilio
Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs)
RegistraScript("Calendario();")
End Sub
Private Sub CargaOrdenesServiciosNoAsignadas()
DdlOrdenesSinAsignar.DataSource = DT_OSNoAsignadas
DdlOrdenesSinAsignar.DataBind()
UpOrdenesSinAsignar.Update()
End Sub
Private Sub ConsultaOrdenesServiciosNoAsignadas()
Dim CveEstatusOrdenServicio As Integer = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveEstatusOrdenServicio", "TipoEstatus=1").ToEntero
If CveEstatusOrdenServicio = 0 Then
Alert("No se pudo carga el estatus", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
Dim ObjOS As New ClsOS
If ObjOS.GetOrdenesServiciosNoAsignadas(-1, -1, CveEstatusOrdenServicio, UsuarioActual.CveEmpresa, "-1", "-1") Then
DT_OSSubProyectos = ObjOS.DtResultados.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"})
DT_OSNoAsignadas = ObjOS.DtResultados
Else
DT_OSSubProyectos = New DataTable
DT_OSNoAsignadas = New DataTable
End If
ObjOS.Dispose()
If DT_OSNoAsignadas.Rows.Count > 0 Then
DVOSPendientes.Visible = True
Else
DVOSPendientes.Visible = False
End If
UpOrdenesSinAsignar.Update()
End Sub
Protected Sub LnkOrdenesSinAsignarMostarModal_Click(sender As Object, e As EventArgs)
CveOSDetalleAsignar = -1
CveOSAsignar = -1
CveSubProyectoAsignar = -1
Dim DTable As DataTable = DT_OSNoAsignadas.FiltraParametros($"CveOSDetalle={DdlOrdenesSinAsignar.SelectedValue}")
If DTable.Rows.Count = 1 Then
CveOSDetalleAsignar = DTable.Rows(0)("CveOSDetalle").ToString.ToEntero
CveSubProyectoAsignar = DTable.Rows(0)("CveSubProyecto").ToString.ToEntero
CveOSAsignar = DTable.Rows(0)("CveOS").ToString.ToEntero
FolioAsignar = DTable.Rows(0)("Folio").ToString
LblModalConcepto.Text = DTable.Rows(0)("Concepto").ToString
LblModalCliente.Text = DTable.Rows(0)("Nombre").ToString
LblModalSubProyecto.Text = DTable.Rows(0)("SubProyecto").ToString
UpModalOSAsginar.Update()
RegistraScript("$('#DVModalOSAsginar').modal('show');")
Else
Alert("Error al cargar datos.")
End If
End Sub
Protected Sub LnkModalAsignar_Click(sender As Object, e As EventArgs)
Dim TieneError As Boolean = False
Dim CveEstatusOS = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveEstatusOrdenServicio", "TipoEstatus = 2", "CveEstatusOrdenServicio ASC").ToEntero
Dim CorreoAsignado As String = ""
Dim picker As MKB.TimePicker.TimeSelector = TSTimeSelector
Dim time As DateTime
time = DateTime.Parse(String.Format("{0} {1}:{2} {3}", TxtModalFechaOS.Text, picker.Hour, picker.Minute, picker.AmPm))
Dim ObjOS As New ClsOS
ObjOS.IniciaTransacSQL()
If ObjOS.GetSubProyectosEstatusInicial(DdlTecnicoAsignar.SelectedValue.ToEntero, 3, UsuarioActual.CveEmpresa) Then
Dim subProyectoDelTecnico As DataTable
subProyectoDelTecnico = ObjOS.DtResultados.FiltraParametros($"CveSubProyecto = {CveSubProyectoAsignar}")
If subProyectoDelTecnico.Rows.Count > 0 Then
If Not ObjOS.UpdateOrdenesServiciosAsignadas(CveOSDetalleAsignar, DdlTecnicoAsignar.SelectedValue.ToEntero, TxtModalFechaOS.Text.ToDate, time, UsuarioActual.CveEmpresa) Then
TieneError = True
End If
Else
Alert("El técnico y la Orden de Servicio deben pertenecer al mismo subProyecto", TipoMensaje.MsgAdvertencia)
TieneError = True
End If
End If
If Not TieneError Then
If Not ObjOS.UpdateOrdenesServiciosEstatus(CveEstatusOS, UsuarioActual.CveUsuario, CveOSAsignar) Then
TieneError = True
End If
If Not TieneError Then
Dim RecurrenciaTipo = 0, Frecuencia = -1, DiasSemana = "-1", Dias = -1, Mes = -1, RecurrenciaFin = "-1"
Dim OIDescripcion As String = $"{DdlTecnicoAsignar.SelectedItem.Text} <b><a href='/OS/OrdenesServicios.aspx?CveOS={CveOSAsignar}' target='_blank' class='Texto' >Orden de servicio {FolioAsignar} </a></b>"
Dim ObjEventos As New ClsOIEventos(ObjOS.IniciaTransacSQL())
If Not ObjEventos.AddEventoAgenda(2, DdlTecnicoAsignar.SelectedItem.Text, OIDescripcion, 2, time, time.AddHours(1), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa,
RecurrenciaTipo:=RecurrenciaTipo, Frecuencia:=Frecuencia, DiasSemana:=DiasSemana, Dia:=Dias, Mes:=Mes, RecurrenciaFin:=RecurrenciaFin, CveTipoEvento:=2,
Importe:=0, CveOS:=CveOSAsignar, CveSubProyecto:=CveSubProyectoAsignar) Then
TieneError = True
End If
End If
CorreoAsignado = GlobalDTUsuarios(DdlTecnicoAsignar.SelectedValue.ToEntero).Rows(0)("Correo").ToString
End If
If Not TieneError Then
ObjOS.Commit()
Else
ObjOS.RollBack()
End If
ObjOS.Dispose()
If Not TieneError And CorreoAsignado.Trim.Length > 0 Then
MandaCorreOS(CveOSAsignar, CorreoAsignado)
End If
If Not TieneError Then
ConsultaOrdenesServiciosNoAsignadas()
Alert("Orden asignada correctamente.")
RegistraScript("$('#DVModalOSAsginar').modal('hide');Calendario();")
End If
End Sub
Private Sub MandaCorreOS(CveOS As Integer, CorreoUsuarioAsignado As String)
Dim ObjOS As New ClsOS()
Dim params As New List(Of ReportParameter)
Dim CveFolio = ""
Dim TmpDTOS = New DataTable
TmpDTOS.Columns.Add("CveOSDetalle", GetType(Integer))
TmpDTOS.Columns.Add("CveClasificacion", GetType(Integer))
TmpDTOS.Columns.Add("Clasificacion", GetType(String))
TmpDTOS.Columns.Add("CvePS", GetType(Integer))
TmpDTOS.Columns.Add("CveUM", GetType(Integer))
TmpDTOS.Columns.Add("UM", GetType(String))
TmpDTOS.Columns.Add("Cantidad", GetType(Integer))
TmpDTOS.Columns.Add("PS", GetType(String))
TmpDTOS.Columns.Add("Especificaciones", GetType(String))
TmpDTOS.Columns.Add("Materiales", GetType(String))
TmpDTOS.Columns.Add("CveCuentaEquipo", GetType(Integer))
TmpDTOS.Columns.Add("Observaciones", GetType(String))
TmpDTOS.Columns.Add("FechaAtencion", GetType(String))
TmpDTOS.Columns.Add("CveUsuarioAtendio", GetType(Integer))
TmpDTOS.Columns.Add("UsuarioAtendio", GetType(String))
TmpDTOS.Columns.Add("FechaTermino", GetType(String))
TmpDTOS.Columns.Add("FechaEntrega", GetType(String))
TmpDTOS.Columns.Add("CveUsuarioEntrego", GetType(Integer))
TmpDTOS.Columns.Add("UsuarioEntrego", GetType(String))
TmpDTOS.Columns.Add("SeFacturara", GetType(String))
TmpDTOS.Columns.Add("SeSuperviso", GetType(String))
TmpDTOS.Columns.Add("Estatus", GetType(String))
TmpDTOS.Columns.Add("Archivo", GetType(String))
TmpDTOS.Columns.Add("ComentarioTecnico", GetType(String))
Dim TmpDTMaterialesOS = New DataTable
TmpDTMaterialesOS.Columns.Add("CveOSDetalle", GetType(Integer))
TmpDTMaterialesOS.Columns.Add("CveConsecutivo", GetType(Integer))
TmpDTMaterialesOS.Columns.Add("CveConsecutivoDetalle", GetType(Integer))
TmpDTMaterialesOS.Columns.Add("CveMaterial", GetType(Integer))
TmpDTMaterialesOS.Columns.Add("Cantidad", GetType(Integer))
TmpDTMaterialesOS.Columns.Add("CveClasificacion", GetType(Integer))
TmpDTMaterialesOS.Columns.Add("CvePS", GetType(String))
TmpDTMaterialesOS.Columns.Add("CveUM", GetType(String))
TmpDTMaterialesOS.Columns.Add("Clasificacion", GetType(String))
TmpDTMaterialesOS.Columns.Add("PS", GetType(String))
TmpDTMaterialesOS.Columns.Add("UM", GetType(String))
Dim FolioOS As String = ""
Dim RutaReporte As New System.IO.FileInfo(String.Format("{0}Formatos/OrdenServicio.rdlc", UsuarioActual.Empresa.Ruta))
If ObjOS.GetOrdenesServicios(CveOS, -1, -1, -1, -1, UsuarioActual.CveEmpresa) Then
If ObjOS.DtResultados.Rows.Count > 0 Then
Dim dtOS As DataTable = ObjOS.DtResultados
Dim dr As DataRow = dtOS.Rows(0)
params.Add(New ReportParameter("Cliente", dr("Cliente").ToString))
params.Add(New ReportParameter("Solicito", dr("PersonaSolicito").ToString))
params.Add(New ReportParameter("Descripcion", dr("Descripcion").ToString))
params.Add(New ReportParameter("Recibio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaRecibido", dr("FechaRecepcion").ToString))
params.Add(New ReportParameter("FolioOS", dr("Folio").ToString))
FolioOS = dr("Folio").ToString
params.Add(New ReportParameter("ClienteTelefono", dr("Telefono").ToString))
params.Add(New ReportParameter("ClienteCalle", dr("Direccion").ToString))
params.Add(New ReportParameter("ClienteColonia", dr("Colonia").ToString))
params.Add(New ReportParameter("ClienteCiudad", dr("Ciudad").ToString))
params.Add(New ReportParameter("ClienteEstado", dr("Estado").ToString))
CveFolio = dr("Folio").ToString
If RutaReporte.Exists Then
params.Add(New ReportParameter("NoDeCliente", dr("CveCliente").ToString))
params.Add(New ReportParameter("RFC", dr("RFC").ToString))
params.Add(New ReportParameter("Vendedor", " "))
params.Add(New ReportParameter("Correo", dr("Correo").ToString))
params.Add(New ReportParameter("CodigoDeServicio", dr("CveOS").ToString))
params.Add(New ReportParameter("Sucursal", dr("SubProyecto").ToString))
params.Add(New ReportParameter("TipoServicio", dr("TipoServicio").ToString))
params.Add(New ReportParameter("TipoEquipo", dr("TipoEquipo").ToString))
params.Add(New ReportParameter("Descripcion", dr("Descripcion").ToString))
params.Add(New ReportParameter("Copia", "Copia: Original"))
params.Add(New ReportParameter("Equipo", dr("Equipo").ToString))
End If
End If
End If
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
If Not RutaReporte.Exists Then
RutaReporte = New System.IO.FileInfo(String.Format("{0}Empresas\Grales\Formatos\OrdenServicio.rdlc", ModExtensiones.DirectorioBaseEmpresas))
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString))
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", $"file://{Imagen.FullName}"))
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
End If
If ObjOS.GetOrdenesServiciosDetalle(CveOS) Then
TmpDTOS = ObjOS.DtResultados
End If
If ObjOS.GetDetalleMateriales(-1, CveOS) Then
TmpDTMaterialesOS = ObjOS.DtResultados
End If
Dim lrds As New List(Of ReportDataSource)
Dim rds As New ReportDataSource With {.Name = "DataSet2", .Value = TmpDTMaterialesOS}
Dim rds2 As New ReportDataSource With {.Name = "DataSet1", .Value = TmpDTOS}
lrds.Add(rds)
lrds.Add(rds2)
ObjOS.Dispose()
Dim ReporteByte As Byte() = StreamPDF(RutaReporte.FullName, lrds, params, NombreArchivo:=String.Format("OrdenServicio-{0}", CveFolio))
If ReporteByte IsNot Nothing Then
Try
ViewState("Para") = CorreoUsuarioAsignado
ViewState("ArrayCC") = ""
ViewState("Asunto") = "Asinación Orden de Servicio"
ViewState("FolioOSMail") = FolioOS
ViewState("Body") = "Asinación Orden de Servicio"
ViewState("bytesOS") = ReporteByte
Dim Hilo As New Threading.Thread(AddressOf SendmailOS)
Hilo.Start()
Catch ex As Exception
GuardaLogAD($"Error al enviar correo de OS {ex.StackTrace}")
End Try
End If
End Sub
Private Sub SendmailOS()
Dim Asunto, Para, ArrayCC, Body As String
Asunto = If(IsNothing(ViewState("Asunto")), "", ViewState("Asunto").ToString)
Para = If(IsNothing(ViewState("Para")), "", ViewState("Para").ToString)
ArrayCC = If(IsNothing(ViewState("ArrayCC")), "", ViewState("ArrayCC").ToString)
Body = If(IsNothing(ViewState("Body")), "", ViewState("Body").ToString)
Dim Mail As New ClsSisMail()
Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.NombreArchivo = $"OS_{ViewState("FolioOSMail") }.pdf", .ArchivoBinario = DirectCast(ViewState("bytesOS"), Byte())})
Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body, ArrayCC, LSRutasMail)
End Sub
End Class