public Certificado(Estimado estimado, string usuario) { CertificadoDetDTO estDet; CertificadoSKUDTO estSKU; Cabecera = new CertificadoCabDTO(estimado.Cabecera); Lineas = new List<CertificadoDetDTO>(); foreach (var ordDet in estimado.Lineas) { estDet = new CertificadoDetDTO(ordDet); estDet.RecId = 0; Lineas.Add(estDet); } SKUs = new List<CertificadoSKUDTO>(); foreach (var ordSKU in estimado.SKUs) { estSKU = new CertificadoSKUDTO(ordSKU); estSKU.RecId = 0; SKUs.Add(estSKU); } }
public csOP_CALENDARIO_NUMERICO(string Estado, string Origen, string PautaId, CertificadoCabDTO Cabecera, List<CertificadoDetDTO> Detalle, List<CertificadoSKUDTO> SKUS, EspacioContDTO Espacio) { _PautaId = PautaId ; _Origen = Origen ; _Estado = Estado ; _cCabecera = Cabecera; _cDetalle = Detalle ; _cSKUS = SKUS ; _Espacio = Espacio ; }
public csOP_Helper(string Estado, string Origen, string PautaId, CertificadoCabDTO Cabecera, List<CertificadoDetDTO> Detalles, List<CertificadoSKUDTO> SKUS, EspacioContDTO Espacio,string filename) { _Estado = Estado; _Origen = Origen; _PautaId = PautaId; _Cabecera = Cabecera; _Detalle = Detalles; _SKUS = SKUS; _Espacio = Espacio; Imprimir(Espacio.FormatoOP, filename); ArmarCabecera(Espacio.FormatoOP, filename); ArmarDetalle(Espacio.FormatoOP, filename); }
private void RecargarDiaHora() { lblMsg.Text = string.Empty; lblErrorHome.Text = string.Empty; string sIdentifOrigen = string.Empty; EspacioContDTO espacio = GetEspacioContenido(); if (botonbuscarpauta == "false" || botonbuscarpauta == "") { if (botonbuscarperiodo == "false" || botonbuscarperiodo == "") { //selecciono directamente de la grilla sIdentifOrigen = gvHome.GetSelectedFieldValues("IdentifOrigen")[0].ToString(); var miPauta = gvHome.GetSelectedFieldValues("PautaId")[0].ToString() ; certificado = Business.Certificados.Read(miPauta, sIdentifOrigen) ; } else { //botonbuscarperiodo = "true" sIdentifOrigen = (string)ucIdentifOrigen1.SelectedValue; certificado = Business.Certificados.Read((string)ucIdentifEspacio.SelectedValue, deAnoMes.Date.Year, deAnoMes.Date.Month, sIdentifOrigen); } } else { //botonbuscarpauta = "true" sIdentifOrigen = (string)ucIdentifOrigen2.SelectedValue; certificado = Business.Certificados.Read(txNroPauta.Text, sIdentifOrigen); } CostosDTO costos = Business.Certificados.FindCosto(Convert.ToString(ucIdentifEspacio.SelectedValue), deAnoMes.Date.Year, deAnoMes.Date.Month); if (certificado != null) { if (CertificadoCab.CertValido != null) { certificado.CertValido = CertificadoCab.CertValido; certificado.FecCertValido = CertificadoCab.FecCertValido; } CertificadoCab = certificado; mycert = Certificados.ReadAllLineas(certificado); Costos = costos; RefreshAbmGrid(gv); /// si el certificado esta cerrado oculto paneles de edicion. if (CertificadoCab.CertValido != "" && CertificadoCab.CertValido != null) { ASPxPageControl2.Visible = false; mnuDetalle.Visible = false; } else { ASPxPageControl2.Visible = true; mnuDetalle.Visible = true; } DateTime date = new DateTime(); date = Convert.ToDateTime(deAnoMes.Date); deFechaDesdeOrigenCopiar.Date = new DateTime(date.Year, date.Month, 1); deFechaHastaOrigenCopiar.Date = new DateTime(date.Year, date.Month, 1).AddMonths(1).AddDays(-1); deFechaDesdeReemplazar.Date = new DateTime(date.Year, date.Month, 1); deFechaHastaReemplazar.Date = new DateTime(date.Year, date.Month, 1).AddMonths(1).AddDays(-1); if (espacio.HoraInicio != null) deHoraDesdeOrigenReemplazar.DateTime = FormsHelper.ConvertToDateTime(espacio.HoraInicio.Value); else deHoraDesdeOrigenReemplazar.DateTime = certificado.VigDesde.Date; if (espacio.HoraFin != null) deHoraHastaOrigenReemplazar.DateTime = FormsHelper.ConvertToDateTime(espacio.HoraFin.Value); else if (certificado.HoraFin != null) deHoraHastaOrigenReemplazar.DateTime = FormsHelper.ConvertToDateTime(certificado.HoraFin); else deHoraHastaOrigenReemplazar.DateTime = certificado.VigHasta.Date.AddHours(23.9999);//origen deFechaDesdeDestinoCopiar.Date = deFechaDesdeOrigenCopiar.Date; } else { if (costos != null) { Costos = costos; //Cargo controles. spPautaID.Number = Business.Certificados.GetNextPautaId(); if (ucIdentifFrecuencia.SelectedValue == null) ucIdentifFrecuencia.SelectedValue = espacio.IdentifFrecuencia; if (ucIdentifIntervalo.SelectedValue == null) ucIdentifIntervalo.SelectedValue = espacio.IdentifIntervalo; if (espacio.HoraInicio.HasValue) { teHoraInicio.DateTime = FormsHelper.ConvertToDateTime(espacio.HoraInicio.Value); teHoraInicioInsertar.DateTime = teHoraInicio.DateTime; } if (espacio.HoraFin.HasValue) { teHoraFin.DateTime = FormsHelper.ConvertToDateTime(espacio.HoraFin.Value); teHoraFinInsertar.DateTime = teHoraFin.DateTime; } //Actualizo controles. ucFrecuenciaChanged(); ASPxPageControl1.Visible = true; trPauta.Visible = true; trFind.Visible = false; //Inicializo Fechas origen para copia deFechaDesdeOrigenCopiar.Date = costos.VigDesde; //origen deFechaHastaOrigenCopiar.Date = costos.VigHasta; //origen deFechaDesdeReemplazar.Date = costos.VigDesde;//origen deFechaHastaReemplazar.Date = costos.VigHasta;//origen //Inicializo Fechas origen para copia DateTime date = new DateTime(); date = Convert.ToDateTime(deAnoMes.Date); deFechaDesdeOrigenCopiar.Date = new DateTime(date.Year, date.Month, 1); deFechaHastaOrigenCopiar.Date = new DateTime(date.Year, date.Month, 1).AddMonths(1).AddDays(-1); deFechaDesdeReemplazar.Date = new DateTime(date.Year, date.Month, 1); deFechaHastaReemplazar.Date = new DateTime(date.Year, date.Month, 1).AddMonths(1).AddDays(-1); //inicializo horas origen if (espacio.HoraInicio != null) deHoraDesdeOrigenReemplazar.DateTime = FormsHelper.ConvertToDateTime(espacio.HoraInicio.Value); else deHoraDesdeOrigenReemplazar.DateTime = costos.VigDesde.Date; if (espacio.HoraFin != null) deHoraHastaOrigenReemplazar.DateTime = FormsHelper.ConvertToDateTime(espacio.HoraFin.Value); else if (certificado != null) if (certificado.HoraFin != null) deHoraHastaOrigenReemplazar.DateTime = FormsHelper.ConvertToDateTime(certificado.HoraFin); //fecha inicio de destino deFechaDesdeDestinoCopiar.Date = costos.VigDesde; //destino certificado = new CertificadoCabDTO(); certificado.AnoMes = Convert.ToInt32(deAnoMes.Date.Year.ToString() + deAnoMes.Date.Month.ToString("00")); certificado.CantSalidas = 0; //Cantidad de salidas total certificado.Costo = 0; //Costo Total de la Pauta certificado.CostoOp = 0; //Costo de la Pauta para la Orden de Publicidad certificado.CostoOpUni = 0; //Costo de la Pauta para la Orden de Publicidad por unidad (segundos, página) certificado.CostoUni = 0; //Costo Total por unidad (segundos, página) certificado.DatareaId = 0; certificado.DuracionTot = 0; //Total Duración o Cantidad certificado.FecCosto = DateTime.Now; //Fecha en qué se calculo el costo por última vez certificado.HoraInicio = FormsHelper.ConvertToTimeSpan(teHoraInicio.DateTime); certificado.HoraFin = FormsHelper.ConvertToTimeSpan(teHoraFin.DateTime); certificado.IdentifEspacio = Convert.ToString(ucIdentifEspacio.SelectedValue); certificado.IdentifFrecuencia = Convert.ToString(ucIdentifFrecuencia.SelectedValue); certificado.IdentifIntervalo = Convert.ToString(ucIdentifIntervalo.SelectedValue); certificado.PautaId = Convert.ToString(spPautaID.Number); certificado.RecId = 0; certificado.CertValido = ""; //Usuario que cerró certificado.UsuCosto = costos.Confirmado; //Usuario qué calculo el costo certificado.VersionCosto = costos.Version.Value; //Versión del registro certificado.VigDesde = costos.VigDesde; //Fecha desde la cual está vigente el Costo certificado.VigHasta = costos.VigHasta; //Fecha hasta la cual estará vigente el Costo CertificadoCab = certificado; RefreshHomeGrid(gvHome); string msg = string.Empty; if (!ValidarFranjaHoraria(ref msg)) lblErrorLineas.Text = msg; msg = string.Empty; if (!ValidarFrecuencia(ref msg)) lblErrorLineas.Text = msg; msg = string.Empty; if (!ValidarIntervalo(ref msg)) lblErrorLineas.Text = msg; } else { lblMsg.Text = "No existen costos Confirmados para este Espacio – Vigencia."; ASPxPageControl1.Visible = true; trPauta.Visible = false; trFind.Visible = true; } } }
private void ReCargarControles(CertificadoCabDTO certificado) { EspacioContDTO espacio = GetEspacioContenido(); lblErrorLineas.Text = string.Empty; Labelx.Text = string.Empty; //Controles de la pauta. spPautaID.Number = Convert.ToInt32(certificado.PautaId); ucIdentifFrecuencia.SelectedValue = certificado.IdentifFrecuencia; ucIdentifIntervalo.SelectedValue = certificado.IdentifIntervalo; if (FormsHelper.ConvertToDateTime(certificado.HoraInicio) != Convert.ToDateTime("00:00:00")) teHoraInicio.DateTime = FormsHelper.ConvertToDateTime(certificado.HoraInicio); teHoraInicioInsertar.DateTime = teHoraInicio.DateTime; if (FormsHelper.ConvertToDateTime(certificado.HoraFin) != Convert.ToDateTime("00:00:00")) teHoraFin.DateTime = FormsHelper.ConvertToDateTime(certificado.HoraFin); teHoraFinInsertar.DateTime = teHoraFin.DateTime; //Controles de solo lectura. spVersionCosto.Value = certificado.VersionCosto; txUsuCosto.Text = certificado.UsuCosto; deFecCosto.Date = certificado.FecCosto; deFecCosto.Value = certificado.FecCosto; txUsuCierre.Text = certificado.CertValido; if (certificado.FecCertValido.ToShortDateString() == "01/01/1900" || certificado.FecCertValido == DateTime.MinValue) deFecCierre.Value = ""; else deFecCierre.Value = certificado.FecCertValido; spCantSalidas.Value = certificado.CantSalidas; string Espacio = string.Empty; string DeAnioMes = string.Empty; if (botonbuscarpauta == "true") { if (gvHome.Selection.Count > 0) { Espacio = gvHome.GetSelectedFieldValues("Espacio")[0].ToString(); DeAnioMes = gvHome.GetSelectedFieldValues("Año")[0].ToString() + "-" + gvHome.GetSelectedFieldValues("Mes")[0].ToString().PadLeft(2, '0'); } else { Espacio = certificado.IdentifEspacio; DeAnioMes = certificado.VigDesde.Date.Year.ToString() + "-" + certificado.VigDesde.Date.Month.ToString().PadLeft(2, '0'); } } else { if (botonbuscarperiodo == "true") { Espacio = ucIdentifEspacio.SelectedText; DeAnioMes = deAnoMes.Date.ToString("yyyy-MM"); } else { //tocó la grilla Espacio = gvHome.GetCurrentPageRowValues("IdentifEspacio")[0].ToString(); switch (botonbuscarpauta) { case "true": break; case "": { DeAnioMes = certificado.VigDesde.Date.Year.ToString() + "-" + certificado.VigDesde.Date.Month.ToString().PadLeft(2, '0'); break; } case "false": { switch (botonbuscarperiodo) { case "true": { DeAnioMes = certificado.VigDesde.Date.Year.ToString() + "-" + certificado.VigDesde.Date.Month.ToString().PadLeft(2, '0'); break; } case "": { break; } case "false": { DeAnioMes = gvHome.GetSelectedFieldValues("año")[0].ToString() + "-" + gvHome.GetSelectedFieldValues("mes")[0].ToString().PadLeft(2, '0'); break; } } break; } } } } litCambiarPauta.Text = string.Format("Espacio: {0} | Período: {1} | Origen: {2}", Espacio, DeAnioMes, certificado.IdentifOrigen); //Actualizo controles. ucFrecuenciaChanged(); ASPxPageControl1.Visible = true; trPauta.Visible = true; trFind.Visible = false; //Solo se pueden modificar certificados NO cerrados. if (certificado.FecCertValido.Year == 1 || certificado.FecCertValido.Year == 1900) { btnSave.Enabled = true; btnValidar.Enabled = true; ucIdentifFrecuencia.ComboBox.Enabled = true; } else { btnSave.Enabled = false; btnValidar.Enabled = false; ucIdentifFrecuencia.ComboBox.Enabled = false; } //Inicializo Fechas... deHoraDesdeOrigenReemplazar.DateTime = FormsHelper.ConvertToDateTime(certificado.HoraInicio); deHoraHastaOrigenReemplazar.DateTime = FormsHelper.ConvertToDateTime(certificado.HoraFin); DateTime date = new DateTime(); date = Convert.ToDateTime(deAnoMes.Date); deFechaDesdeDestinoCopiar.Date = new DateTime(date.Year, date.Month, 1); deFechaDesdeOrigenCopiar.Date = new DateTime(date.Year, date.Month, 1); deFechaHastaOrigenCopiar.Date = new DateTime(date.Year, date.Month, 1).AddMonths(1).AddDays(-1); deFechaDesdeReemplazar.Date = new DateTime(date.Year, date.Month, 1); deFechaHastaReemplazar.Date = new DateTime(date.Year, date.Month, 1).AddMonths(1).AddDays(-1); }
private void CargarCertificado() { lblMsg.Text = string.Empty; lblErrorHome.Text = string.Empty; string sIdentifOrigen = string.Empty; if (botonbuscarperiodo != "") { if (botonbuscarperiodo == "true") { sIdentifOrigen = (string)ucIdentifOrigen1.SelectedValue; certificado = Business.Certificados.Read((string)ucIdentifEspacio.SelectedValue, deAnoMes.Date.Year, deAnoMes.Date.Month, sIdentifOrigen); } else { sIdentifOrigen = gvHome.GetSelectedFieldValues("IdentifOrigen")[0].ToString(); certificado = Business.Certificados.Read((string)ucIdentifEspacio.SelectedValue, deAnoMes.Date.Year, deAnoMes.Date.Month, sIdentifOrigen); } } else { if (botonbuscarpauta == "") { if (botonbuscarpauta == "true") { sIdentifOrigen = gvHome.GetSelectedFieldValues("IdentifOrigen")[0].ToString(); certificado = Business.Certificados.Read(txNroPauta.Text, sIdentifOrigen); } else { sIdentifOrigen = gvHome.GetSelectedFieldValues("IdentifOrigen")[0].ToString(); var miPauta = gvHome.GetSelectedFieldValues("PautaId")[0].ToString(); certificado = Business.Certificados.Read(miPauta, sIdentifOrigen); } } else { sIdentifOrigen = (string)ucIdentifOrigen2.SelectedValue; certificado = Business.Certificados.Read(txNroPauta.Text, sIdentifOrigen); } } ASPxPageControl1.Visible = true; trPauta.Visible = true; trFind.Visible = false; EspacioContDTO espacio = GetEspacioContenido(); if (botonbuscarpauta == "false" || botonbuscarpauta == "") { if (botonbuscarperiodo == "false" || botonbuscarperiodo == "") spOrigenCertificado.Value = gvHome.GetSelectedFieldValues("IdentifOrigen")[0].ToString(); else spOrigenCertificado.Value = certificado.IdentifOrigen; } else { spOrigenCertificado.Value = certificado.IdentifOrigen; } if (certificado != null) ReCargarControles(certificado); else { if (gvHome.Selection.Count > 0) { string EspacioX = string.Empty; string DeAnioMes = string.Empty; string IDOrigen = string.Empty; EspacioX = gvHome.GetSelectedFieldValues("IdentifEspacio")[0].ToString(); DeAnioMes = gvHome.GetSelectedFieldValues("año")[0].ToString() + "-" + gvHome.GetSelectedFieldValues("mes")[0].ToString().PadLeft(2, '0'); IDOrigen = gvHome.GetSelectedFieldValues("IdentifOrigen")[0].ToString(); litCambiarPauta.Text = string.Format("Espacio: {0} | Período: {1} | Origen: {2}", EspacioX, DeAnioMes, IDOrigen); EspacioContDTO espacio0 = GetEspacioContenido(); lblErrorLineas.Text = string.Empty; Labelx.Text = string.Empty; //Controles de la pauta. spPautaID.Number = Convert.ToDecimal(gvHome.GetSelectedFieldValues("PautaId")[0]); certificado = Business.Certificados.Read(spPautaID.Number.ToString(), IDOrigen); ucIdentifFrecuencia.SelectedValue = certificado.IdentifFrecuencia; ucIdentifIntervalo.SelectedValue = certificado.IdentifIntervalo; if (FormsHelper.ConvertToDateTime(certificado.HoraInicio) != Convert.ToDateTime("00:00:00")) teHoraInicio.DateTime = FormsHelper.ConvertToDateTime(certificado.HoraInicio); teHoraInicioInsertar.DateTime = teHoraInicio.DateTime; if (FormsHelper.ConvertToDateTime(certificado.HoraFin) != Convert.ToDateTime("00:00:00")) teHoraFin.DateTime = FormsHelper.ConvertToDateTime(certificado.HoraFin); teHoraFinInsertar.DateTime = teHoraFin.DateTime; //Controles de solo lectura. spVersionCosto.Value = certificado.VersionCosto; txUsuCosto.Text = certificado.UsuCosto; deFecCosto.Date = certificado.FecCosto; deFecCosto.Value = certificado.FecCosto; txUsuCierre.Text = certificado.CertValido; deFecCierre.Value = certificado.FecCertValido; spCantSalidas.Value = certificado.CantSalidas; //Actualizo controles. ucFrecuenciaChanged(); ASPxPageControl1.Visible = true; trPauta.Visible = true; trFind.Visible = false; //Solo se pueden modificar certificados NO cerrados. if (certificado.FecCertValido.Year == 1) { btnSave.Enabled = true; btnValidar.Enabled = true; ucIdentifFrecuencia.ComboBox.Enabled = true; } else { btnSave.Enabled = false; btnValidar.Enabled = false; ucIdentifFrecuencia.ComboBox.Enabled = false; } deHoraDesdeOrigenReemplazar.DateTime = FormsHelper.ConvertToDateTime(certificado.HoraInicio); deHoraHastaOrigenReemplazar.DateTime = FormsHelper.ConvertToDateTime(certificado.HoraFin); DateTime date = new DateTime(); date = Convert.ToDateTime(deAnoMes.Date); deFechaDesdeDestinoCopiar.Date = new DateTime(date.Year, date.Month, 1); deFechaDesdeOrigenCopiar.Date = new DateTime(date.Year, date.Month, 1); deFechaHastaOrigenCopiar.Date = new DateTime(date.Year, date.Month, 1).AddMonths(1).AddDays(-1); deFechaDesdeReemplazar.Date = new DateTime(date.Year, date.Month, 1); deFechaHastaReemplazar.Date = new DateTime(date.Year, date.Month, 1).AddMonths(1).AddDays(-1); } } RecargarDiaHora(); spEspacio.Value = GetEspacioContenido().IdentifEspacio; spMedio.Value = GetEspacioContenido().IdentifMedio; spAnioMes.Value = CertificadoCab.AnoMes.ToString().Substring(0, 4) + "-" + CertificadoCab.AnoMes.ToString().Substring(4); spOrigenCertificado.Value = certificado.IdentifOrigen; }
public static void Update(CertificadoCabDTO certificado, List<CertificadoDetDTO> lineas) { CertificadoSKUDTO sku; using (SqlTransaction tran = dao.IniciarTransaccion()) { try { dao.Update(certificado, certificado.RecId, tran); //Elimino toda las lineas del ordenado y las re-creo. daoDetalle.Delete( string.Format("PautaId = '{0}' AND IdentifOrigen = '{1}'", certificado.PautaId, certificado.IdentifOrigen), tran); foreach (CertificadoDetDTO linea in lineas) { linea.RecId = 0; linea.DatareaId = certificado.DatareaId; linea.PautaId = certificado.PautaId; linea.IdentifOrigen = certificado.IdentifOrigen; daoDetalle.Create(linea, tran); } //Elimino toda las lineas del ordenado y las re-creo. daoSKU.Delete( string.Format("PautaId = '{0}'", certificado.PautaId), tran); var dtSKU = BuildAllSKU(lineas); foreach (System.Data.DataRow dr in dtSKU.Rows) { sku = new CertificadoSKUDTO(); sku.RecId = 0; sku.DatareaId = certificado.DatareaId; sku.PautaId = certificado.PautaId; sku.IdentifOrigen = certificado.IdentifOrigen; if (dr["Duracion"] != DBNull.Value) sku.Duracion = Convert.ToDecimal(dr["Duracion"]); else sku.Duracion = null; sku.CantSalidas = Convert.ToDecimal(dr["CantSalidas"]); sku.IdentifAviso = Convert.ToString(dr["IdentifAviso"]); sku.IdentifSKU = Convert.ToString(dr["IdentifSKU"]); daoSKU.Create(sku, tran); } dao.CommitTransaccion(tran); } catch (Exception) { dao.RollbackTransaccion(tran); throw; } } }
public static void Update(CertificadoCabDTO certificado, string sWhere) { using (SqlTransaction tran = dao.IniciarTransaccion()) { try { dao.Update(certificado, sWhere, tran); dao.CommitTransaccion(tran); } catch { dao.RollbackTransaccion(tran); } } }
public static List<CertificadoDetDTO> ReadAllLineas(CertificadoCabDTO certificado) { if (certificado.IdentifOrigen != "NULL") { List<CertificadoDetDTO> mycert = daoDetalle.ReadAll(string.Format("PautaId = '{0}' AND IdentifOrigen = '{1}'", certificado.PautaId,certificado.IdentifOrigen)); return mycert; } return daoDetalle.ReadAll(string.Format("PautaId = '{0}' AND IdentifOrigen != 'NULL'", certificado.PautaId)); }
//(int id) public static void Delete(CertificadoCabDTO certificado) { using (SqlTransaction tran = dao.IniciarTransaccion()) { try { //Elimino toda las lineas del certificado detalle daoDetalle.Delete( string.Format("PautaId = '{0}' AND IdentifOrigen = '{1}'", certificado.PautaId,certificado.IdentifOrigen), tran); //Elimino toda las lineas del certificado sku daoSKU.Delete( string.Format("PautaId = '{0}' AND IdentifOrigen = '{1}'", certificado.PautaId,certificado.IdentifOrigen), tran); //elimino certificado. dao.Delete(string.Format("PautaId = '{0}' AND IdentifOrigen = '{1}'", certificado.PautaId, certificado.IdentifOrigen), tran); dao.CommitTransaccion(tran); } catch (Exception) { dao.RollbackTransaccion(tran); throw; } } }
public static void Create(CertificadoCabDTO certificado, List<CertificadoDetDTO> lineas) { CertificadoSKUDTO sku; using (SqlTransaction tran = dao.IniciarTransaccion()) { try { certificado.PautaId = SaveNextPautaId(tran).ToString(); certificado = dao.Create(certificado, tran); foreach (CertificadoDetDTO linea in lineas) { linea.RecId = 0; linea.DatareaId = certificado.DatareaId; linea.PautaId = certificado.PautaId; daoDetalle.Create(linea, tran); } var dtSKU = BuildAllSKU(lineas); foreach (System.Data.DataRow dr in dtSKU.Rows) { sku = new CertificadoSKUDTO(); sku.RecId = 0; sku.DatareaId = certificado.DatareaId; sku.PautaId = certificado.PautaId; if (dr["Duracion"] != DBNull.Value) sku.Duracion = Convert.ToDecimal(dr["Duracion"]); else sku.Duracion = null; sku.CantSalidas = Convert.ToDecimal(dr["CantSalidas"]); sku.IdentifAviso = Convert.ToString(dr["IdentifAviso"]); sku.IdentifSKU = Convert.ToString(dr["IdentifSKU"]); daoSKU.Create(sku, tran); } dao.CommitTransaccion(tran); } catch (Exception) { dao.RollbackTransaccion(tran); throw; } } }
public static void CalcularCosto(CertificadoCabDTO certificadoCAB, CostosDTO costoCab, List<CertificadoDetDTO> lineas, string usuario) { decimal costo = 0; decimal costoAcum = 0; //Lockeo la seccion para que otro thread no me descontrole los calculos. lock (typeof(Estimado)) { using (SqlTransaction tran = dao.IniciarTransaccion()) { try { //La recargo para asegurarme de tener la version mas reciente... certificadoCAB = dao.Read(string.Format("PautaId='{0}'", certificadoCAB.PautaId)); if (costoCab == null) { throw new Exception("No hay costos confirmados para realizar el costeo de la Pauta: " + certificadoCAB.PautaId.ToString()); } //Inicializo en '0' los registros de trabajo. dao.MoverCeros(certificadoCAB.PautaId, tran); daoDetalle.MoverCeros(certificadoCAB.PautaId, tran); daoSKU.MoverCeros(certificadoCAB.PautaId, tran); //• Seleccionar la Tabla CostoProveedorVersion var costosProveedorVersion = Costos.ReadAllProveedorVersiones(certificadoCAB.IdentifEspacio, costoCab.VigDesde, costoCab.VigHasta, costoCab.Version.Value); //Por cada registro seleccionado: foreach (var costoProveedorVersion in costosProveedorVersion) { //• Calcular Tipo de cambio var tipoCambioValor = Monedas.GetTipoCambioValor(costoProveedorVersion.IdentifMon); var costoCur = costoProveedorVersion.Costo * tipoCambioValor; //• Calcular GrossingUp var costoGros = costoCur * costoProveedorVersion.GrossingUp; //• Actualizar Tabla DET var certificadoDetalles = daoDetalle.ReadAll(string.Format("PautaId='{0}'", certificadoCAB.PautaId)); foreach (var certificadoDET in certificadoDetalles) { if (costoProveedorVersion.TipoCosto == "FIJO_MENSUAL") { if (certificadoCAB.DuracionTot > 0) { if (certificadoDET.Duracion != null) { costo = (costoGros / certificadoCAB.DuracionTot) * certificadoDET.Duracion.Value; } else { decimal? divisor = 0; costo = (costoGros / certificadoCAB.DuracionTot) * divisor.Value; } } else { costo = costoGros; } } else if (costoProveedorVersion.TipoCosto == "SEGUNDO_FIJO") { costo = costoGros * certificadoDET.Duracion.Value; } else if (costoProveedorVersion.TipoCosto == "SALIDA") { costo = costoGros; } else if (costoProveedorVersion.TipoCosto == "UNIDAD_PAUTADA") { costo = costoGros; } else { throw new Exception("Proveedor.TipoCosto Desconocido."); } certificadoDET.Costo += costo; if (certificadoDET.Duracion != null) { if (certificadoDET.Duracion > 0) { certificadoDET.CostoUni = certificadoDET.Costo / certificadoDET.Duracion.Value; } else { certificadoDET.CostoUni = certificadoDET.Costo; } } else { certificadoDET.CostoUni = certificadoDET.Costo; } if (costoProveedorVersion.IncluidoOP) { certificadoDET.CostoOp += costo; if (certificadoDET.Duracion != null) { certificadoDET.CostoOpUni = certificadoDET.CostoOp / certificadoDET.Duracion.Value; } else { certificadoDET.CostoOpUni = certificadoDET.CostoOp; } } costoAcum += costo; //o Actualizar la Tabla DET daoDetalle.Update(certificadoDET, certificadoDET.RecId, tran); } //• Actualizar Tabla SKU foreach (var certificadoDET in certificadoDetalles) { //o Seleccionar la Tabla SKU con SKU.PautaID = PautaId enviado y SKU.IdentifAviso = DET.IdentifAviso var ordenadoSKUs = daoSKU.ReadAll(string.Format("PautaId='{0}' AND IdentifAviso='{1}'", certificadoCAB.PautaId, certificadoDET.IdentifAviso)); //o Seleccionar la Tabla Avisos con IdentifAviso... >> var aviso = Avisos.Read(string.Format("IdentifAviso='{0}'", certificadoDET.IdentifAviso)); var productosPiezaArte = PiezasArte.ReadAllProductos(aviso.IdentifPieza); foreach (var ordenadoSKU in ordenadoSKUs) { //o >> ... y luego la tabla PiezasArteSKU con IdentifPieza, TipoProd = “Primario” y IdentifSKU = SKU.IdentifSKU var productoPiezaArte = productosPiezaArte.Find(x => x.TipoProd.Trim().ToUpper() == "PRIMARIO" && x.IdentifSKU == ordenadoSKU.IdentifSKU); ordenadoSKU.Costo += (productoPiezaArte.Coeficiente.Value * costo); if (ordenadoSKU.Duracion != null) { ordenadoSKU.CostoUni = (ordenadoSKU.Costo / ordenadoSKU.Duracion.Value); } else { ordenadoSKU.CostoUni = (ordenadoSKU.Costo); } //• Si campo CostoProveedorVersion.IncluidoOP = “Si” if (costoProveedorVersion.IncluidoOP) { ordenadoSKU.CostoOp += (productoPiezaArte.Coeficiente.Value * costo); if (ordenadoSKU.Duracion != null) { ordenadoSKU.CostoOpUni = (ordenadoSKU.CostoOp / ordenadoSKU.Duracion.Value); } else { ordenadoSKU.CostoOpUni = (ordenadoSKU.CostoOp); } } //o Actualizar Tabla SKU daoSKU.Update(ordenadoSKU, ordenadoSKU.RecId, tran); } } certificadoCAB.Costo = costoAcum; if (certificadoCAB.DuracionTot > 0) { certificadoCAB.CostoUni = certificadoCAB.Costo / certificadoCAB.DuracionTot; } else { certificadoCAB.CostoUni = certificadoCAB.Costo; } if (costoProveedorVersion.IncluidoOP) { certificadoCAB.CostoOp = certificadoCAB.Costo; if (certificadoCAB.DuracionTot > 0) { certificadoCAB.CostoOpUni = certificadoCAB.CostoOp / certificadoCAB.DuracionTot; } else { certificadoCAB.CostoOpUni = certificadoCAB.CostoOp; } } certificadoCAB.VersionCosto = costoCab.Version.Value; certificadoCAB.VigDesde = costoCab.VigDesde; certificadoCAB.VigHasta = costoCab.VigHasta; certificadoCAB.FecCosto = DateTime.Now; certificadoCAB.UsuCosto = usuario; dao.Update(certificadoCAB, certificadoCAB.RecId, tran); } dao.CommitTransaccion(tran); } catch (Exception ex) { dao.RollbackTransaccion(tran); throw new Exception("CalcularCosto", ex); } } } }