protected void btnAprobar_Click(object sender, EventArgs e) { string sNumInvoce = string.Empty; string sPeriodo = string.Empty; StringBuilder sHtml = new StringBuilder(); sHtml.Append(File.ReadAllText(Server.MapPath("invoice.html"))); StringBuilder sDataProductos = new StringBuilder(); StringBuilder sDataValorProductos = new StringBuilder(); double dTotalFacturaUsd = 0; bool bExito = false; if (ViewState["dtFactura"] != null) { arrayMes = ViewState["arrayMes"] as string[]; DataTable dtFactura = ViewState["dtFactura"] as DataTable; if (dtFactura != null) { DBConn oConn = new DBConn(); if (oConn.Open()) { cFactura oFactura = new cFactura(ref oConn); oFactura.NumContrato = hdd_num_contrato.Value; oFactura.Territory = "CHILE"; oFactura.DateInvoce = DateTime.Now.ToString("yyyy-MM-dd"); oFactura.DueDate = DateTime.Now.AddMonths(1).ToString("yyyy-MM-dd"); oFactura.TipoFactura = "Q"; oFactura.Accion = "CREAR"; oFactura.Put(); if (string.IsNullOrEmpty(oFactura.Error)) { bExito = true; } string pCodFactura = oFactura.CodFactura; cDetalleFactura oDetalleFactura = new cDetalleFactura(ref oConn); oDetalleFactura.CodigoFactura = pCodFactura; foreach (DataRow oRow in dtFactura.Rows) { string sDescripcionMarca = string.Empty; DataTable dtMarca = getMarca(oRow["Marca"].ToString()); if (dtMarca != null) { if (dtMarca.Rows.Count > 0) { sDescripcionMarca = dtMarca.Rows[0]["descripcion"].ToString(); } } dtMarca = null; string pCodCategoria = null; string sDescripcionCategoria = string.Empty; string pCodSubCategoria = null; string sDescripcionSubCategoria = string.Empty; if (!string.IsNullOrEmpty(oRow["Categoría"].ToString())) { pCodCategoria = oRow["Categoría"].ToString(); DataTable dtCategoria = getCategoria(oRow["Categoría"].ToString()); if (dtCategoria != null) { if (dtCategoria.Rows.Count > 0) { sDescripcionCategoria = dtCategoria.Rows[0]["descripcion"].ToString(); } } dtCategoria = null; } if (!string.IsNullOrEmpty(oRow["Subcategoría"].ToString())) { pCodSubCategoria = oRow["Subcategoría"].ToString(); DataTable dtSubCategoria = getSubCategoria(oRow["Subcategoría"].ToString()); if (dtSubCategoria != null) { if (dtSubCategoria.Rows.Count > 0) { sDescripcionSubCategoria = dtSubCategoria.Rows[0]["descripcion"].ToString(); } } dtSubCategoria = null; } sDataProductos.Append("<div style=\"padding-top:10px;padding-bottom:10px;\">"); sDataProductos.Append("<div><font style=\"font-family:Arial; color:#000000; font-size:10pt;font-weight:bold;\">"); sDataProductos.Append(sDescripcionMarca); if (!string.IsNullOrEmpty(sDescripcionCategoria)) { sDataProductos.Append(" / " + sDescripcionCategoria); } if (!string.IsNullOrEmpty(sDescripcionSubCategoria)) { sDataProductos.Append(" / " + sDescripcionSubCategoria); } sDataProductos.Append(" ").Append(String.Format("{0:P1}", double.Parse(oRow["Royalty (%)"].ToString()))).Append("</font></div>"); //sDataProductos.Append(" ").Append(oRow["Royalty (%)"].ToString()).Append("</font></div>"); sDataProductos.Append("<div><font style=\"font-family:Arial; color:#000000; font-size:10pt;\">Royalties</font></div>"); sDataProductos.Append("<div><font style=\"font-family:Arial; color:#000000; font-size:10pt;\">BDI</font></div>"); if (double.Parse(oRow["Saldo Advance USD"].ToString()) > 0) { sDataProductos.Append("<div><font style=\"font-family:Arial; color:#000000; font-size:10pt;\">Advance</font></div>"); } sDataProductos.Append("</div>"); oDetalleFactura.CodMarca = oRow["Marca"].ToString(); oDetalleFactura.CodCategoria = pCodCategoria; oDetalleFactura.CodSubcategoria = pCodSubCategoria; oDetalleFactura.MesNomUno = arrayMes[0].ToString(); oDetalleFactura.MesMntUno = oRow[oWeb.getMes(int.Parse(arrayMes[0].ToString())).ToString()].ToString(); oDetalleFactura.MesNomDos = arrayMes[1].ToString(); oDetalleFactura.MesMntDos = oRow[oWeb.getMes(int.Parse(arrayMes[1].ToString())).ToString()].ToString(); oDetalleFactura.MesNomTres = arrayMes[2].ToString(); oDetalleFactura.MesMntTres = oRow[oWeb.getMes(int.Parse(arrayMes[2].ToString())).ToString()].ToString(); oDetalleFactura.CodRoyalty = oRow["CodRoyalty"].ToString(); oDetalleFactura.Royalty = oRow["Royalty (%)"].ToString(); oDetalleFactura.Bdi = oRow["BDI (%)"].ToString(); oDetalleFactura.Periodo = oRow["Periodo"].ToString(); oDetalleFactura.MontoRoyaltyUsd = double.Parse(oRow["Monto Royalty USD"].ToString()).ToString(); oDetalleFactura.MontoBdiUsd = double.Parse(oRow["Monto BDI USD"].ToString()).ToString(); oDetalleFactura.SaldoAdvanceUsd = double.Parse(oRow["Saldo Advance USD"].ToString()).ToString(); oDetalleFactura.FacturaUsd = double.Parse(oRow["Factura USD"].ToString()).ToString(); oDetalleFactura.Accion = "CREAR"; oDetalleFactura.Put(); if (!string.IsNullOrEmpty(oDetalleFactura.Error)) { bExito = false; } cAdvanceContrato oAdvanceContrato = new cAdvanceContrato(ref oConn); oAdvanceContrato.NumContrato = hdd_num_contrato.Value; oAdvanceContrato.CodMarca = oRow["Marca"].ToString(); oAdvanceContrato.CodCategoria = pCodCategoria; oAdvanceContrato.CodSubCategoria = pCodSubCategoria; if (double.Parse(oRow["Factura USD"].ToString()) > 0) { oAdvanceContrato.Saldo = oRow["Saldo"].ToString(); } oAdvanceContrato.Accion = "EDITAR"; oAdvanceContrato.Put(); sDataValorProductos.Append("<div style=\"padding-top:10px;padding-bottom:10px; padding-left:10px;\">"); sDataValorProductos.Append("<div style=\"float:left;width:30px;\"><font style=\"font-family:Arial; color:#000000; font-size:10pt;\"> </font></div>"); sDataValorProductos.Append("<div style=\"text-align:right;\"><font style=\"font-family:Arial; color:#000000; font-size:10pt;\"> </font></div>"); sDataValorProductos.Append("<div style=\"float:left;width:30px;\"><font style=\"font-family:Arial; color:#000000; font-size:10pt;\">$</font></div>"); sDataValorProductos.Append("<div style=\"text-align:right;\"><font style=\"font-family:Arial; color:#000000; font-size:10pt;\">").Append(double.Parse(oRow["Monto Royalty USD"].ToString()).ToString("#,##0.00")).Append("</font></div>"); sDataValorProductos.Append("<div style=\"float:left;width:30px;\"><font style=\"font-family:Arial; color:#000000; font-size:10pt;\">$</font></div>"); sDataValorProductos.Append("<div style=\"text-align:right;\"><font style=\"font-family:Arial; color:#000000; font-size:10pt;\">").Append(double.Parse(oRow["Monto BDI USD"].ToString()).ToString("#,##0.00")).Append("</font></div>"); sDataValorProductos.Append("<div style=\"float:left;width:30px;\"><font style=\"font-family:Arial; color:#000000; font-size:10pt;\"> </font></div>"); if (double.Parse(oRow["Saldo Advance USD"].ToString()) > 0) { sDataValorProductos.Append("<div style=\"text-align:right;\"><font style=\"font-family:Arial; color:#ff0000; font-size:10pt;\">(").Append(double.Parse(oRow["Saldo Advance USD"].ToString()).ToString("#,##0.00")).Append(")</font></div>"); } sDataValorProductos.Append("</div>"); dTotalFacturaUsd = dTotalFacturaUsd + double.Parse(oRow["Factura USD"].ToString()); } string strNomDeudor = string.Empty; string sNomContacto = string.Empty; string sEmailContacto = string.Empty; string sDireccion = string.Empty; string sComuna = string.Empty; string sCiudad = string.Empty; cContratos oContrato = new cContratos(ref oConn); oContrato.NumContrato = hdd_num_contrato.Value; DataTable dtContrato = oContrato.Get(); if (dtContrato != null) { if (dtContrato.Rows.Count > 0) { cDeudor oDeudor = new cDeudor(ref oConn); oDeudor.NKeyDeudor = dtContrato.Rows[0]["nKey_Deudor"].ToString(); DataTable dtDeudor = oDeudor.Get(); if (dtDeudor != null) { if (dtDeudor.Rows.Count > 0) { strNomDeudor = dtDeudor.Rows[0]["snombre"].ToString(); } } dtDeudor = null; cContactosDeudor oContactosDeudor = new cContactosDeudor(ref oConn); oContactosDeudor.NKeyDeudor = dtContrato.Rows[0]["nKey_Deudor"].ToString(); oContactosDeudor.NkeyCliente = oUsuario.NKeyUsuario; DataTable dtContacto = oContactosDeudor.Get(); if (dtContacto != null) { if (dtContacto.Rows.Count > 0) { sNomContacto = dtContacto.Rows[0]["sNombre"].ToString(); sEmailContacto = dtContacto.Rows[0]["sEmail"].ToString(); } } dtContacto = null; cDirecciones oDirecciones = new cDirecciones(ref oConn); oDirecciones.NKeyDeudor = dtContrato.Rows[0]["nKey_Deudor"].ToString(); oDirecciones.NkeyCliente = oUsuario.NKeyUsuario; DataTable dtDireccion = oDirecciones.Get(); if (dtDireccion != null) { if (dtDireccion.Rows.Count > 0) { sDireccion = dtDireccion.Rows[0]["sDireccion"].ToString(); sComuna = dtDireccion.Rows[0]["sComuna"].ToString(); sCiudad = dtDireccion.Rows[0]["sCiudad"].ToString(); } } dtDireccion = null; } } dtContrato = null; //string sNumInvoce = strNomDeudor.Substring(0, 3).ToUpper(); //sNumInvoce = sNumInvoce.ToUpper(); //string sNumInvoce = "FE" + int.Parse(pCodFactura).ToString("D10"); sNumInvoce = "FE" + pCodFactura; oFactura.Total = dTotalFacturaUsd.ToString(); oFactura.Periodo = hdd_periodo.Value + "/" + hdd_ano_periodo.Value; oFactura.NumInvoice = sNumInvoce; oFactura.Accion = "EDITAR"; oFactura.Put(); cReporteVenta cReporteVenta; arrayReporteVenta = ViewState["arrayReporteVenta"] as string[]; foreach (string pCodReporte in arrayReporteVenta) { cReporteVenta = new cReporteVenta(ref oConn); cReporteVenta.CodigoReporteVenta = pCodReporte; cReporteVenta.Facturado = "F"; cReporteVenta.CodigoFactura = pCodFactura; cReporteVenta.Accion = "EDITAR"; cReporteVenta.Put(); } if (double.Parse(dTotalFacturaUsd.ToString()) > 0) { sHtml.Replace("[#TITLE]", "INVOICE"); } else { sHtml.Replace("[#TITLE]", "CREDIT NOTE"); } sHtml.Replace("[#NUMFACTURA]", sNumInvoce); sHtml.Replace("[#NOMEMPRESA]", strNomDeudor); sHtml.Replace("[#NOMCONTACTO]", sNomContacto); sHtml.Replace("[#EMAILCONTACTO]", sEmailContacto); sHtml.Replace("[#DIRECCION]", sDireccion + (!string.IsNullOrEmpty(sComuna) ? ", " + sComuna : string.Empty)); sHtml.Replace("[#CIUDAD]", sCiudad); sHtml.Replace("[#PAIS]", ""); sHtml.Replace("[#FECHA]", DateTime.Now.ToString("d-MMM-yy", CultureInfo.CreateSpecificCulture("en-US"))); sHtml.Replace("[#NUMCONTRATO]", hdd_no_contrato.Value); sHtml.Replace("[#PERIODOQ]", oDetalleFactura.Periodo); sPeriodo = oDetalleFactura.Periodo; sHtml.Replace("[#PROPERTY]", ""); sHtml.Replace("[#TERRITORIO]", "CHILE"); sHtml.Replace("[#DETALLEPRODUCTOS]", sDataProductos.ToString()); sHtml.Replace("[#DETALLEVALORPRODUCTOS]", sDataValorProductos.ToString()); sHtml.Replace("[#DUEDATE]", DateTime.Now.AddMonths(1).ToString("d-MMM-yy", CultureInfo.CreateSpecificCulture("en-US"))); //sHtml.Replace("[#TOTAL]", double.Parse(dTotalFacturaUsd.ToString()).ToString("#,##0.00")); sHtml.Replace("[#TOTAL]", double.Parse(dTotalFacturaUsd.ToString()).ToString("N0")); if (!Directory.Exists(Server.MapPath("Facturas/") + hdd_no_contrato.Value + "/")) { Directory.CreateDirectory(Server.MapPath("Facturas/") + hdd_no_contrato.Value + "/"); } string sFileHtml = Server.MapPath("Facturas/") + hdd_no_contrato.Value + "/" + sNumInvoce + ".html"; File.WriteAllText(sFileHtml, sHtml.ToString(), Encoding.UTF8); } oConn.Close(); } dtFactura = null; } if (bExito) { //cmbox_contrato.SelectedValue = "0"; idGrilla.Visible = false; idBtnSave.Visible = false; DBConn oConn = new DBConn(); if (oConn.Open()) { cLogEventos oLogEventos = new cLogEventos(ref oConn); oLogEventos.AccionLog = "APROBAR POR DETALLE PRE-FACTURA Q"; oLogEventos.CodCanal = "2"; oLogEventos.CodFlujo = "5"; oLogEventos.NomFlujo = "FACTURACION Q"; oLogEventos.NumContrato = hdd_num_contrato.Value; oLogEventos.NoContrato = hdd_no_contrato.Value; oLogEventos.PeriodoLog = sPeriodo; //oLogEventos.RutDeudor = oUsuario.RutLicenciatario; oLogEventos.CodUser = oUsuario.CodUsuario; oLogEventos.RutUser = oUsuario.RutUsuario; oLogEventos.NomUser = oUsuario.Nombres; oLogEventos.ObsLog = "Se ha autorizado correctamente la Factura Q " + sNumInvoce; oLogEventos.IpLog = oWeb.GetIpUsuario(); oLogEventos.Accion = "CREAR"; oLogEventos.Put(); } oConn.Close(); StringBuilder js = new StringBuilder(); js.Append("function LgRespuesta() {"); js.Append(" window.radalert('La factura ha sido emitida con éxito.', 330, 210); "); js.Append(" Sys.Application.remove_load(LgRespuesta); "); js.Append("};"); js.Append("Sys.Application.add_load(LgRespuesta);"); Page.ClientScript.RegisterStartupScript(this.GetType(), "radalert", js.ToString(), true); } }
protected void putAprobarAdvanceAll(string pNumContrato, string pNoContrato) { StringBuilder sHtml = new StringBuilder(); sHtml.Append(File.ReadAllText(Server.MapPath("invoice.html"))); StringBuilder sDataProductos = new StringBuilder(); StringBuilder sDataValorProductos = new StringBuilder(); double dTotalFacturaUsd = 0; if (ViewState["FacturaAdvance_" + pNumContrato] != null) { DataTable dtFactura = ViewState["FacturaAdvance_" + pNumContrato] as DataTable; if (dtFactura != null) { if (dtFactura.Rows.Count > 0) { DBConn oConn = new DBConn(); if (oConn.Open()) { cFactura oFactura = new cFactura(ref oConn); oFactura.NumContrato = pNumContrato; oFactura.Territory = "CHILE"; oFactura.DateInvoce = DateTime.Now.ToString("yyyy-MM-dd"); oFactura.DueDate = DateTime.Now.AddMonths(1).ToString("yyyy-MM-dd"); oFactura.TipoFactura = "A"; oFactura.Accion = "CREAR"; oFactura.Put(); string pCodFactura = oFactura.CodFactura; foreach (DataRow oRow in dtFactura.Rows) { string sDescripcionMarca = oRow["Marca"].ToString(); sDataProductos.Append("<div style=\"padding-top:10px;padding-bottom:10px;\">"); sDataProductos.Append("<div><font style=\"font-family:Arial; color:#000000; font-size:10pt;font-weight:bold;\">"); sDataProductos.Append(oRow["Marca"].ToString()); string pCodCategoria = null; string pCodSubCategoria = null; if (!string.IsNullOrEmpty(oRow["CodCategoria"].ToString())) { pCodCategoria = oRow["CodCategoria"].ToString(); sDataProductos.Append(" / " + oRow["Categoria"].ToString()); } if (!string.IsNullOrEmpty(oRow["CodSubCategoria"].ToString())) { pCodSubCategoria = oRow["CodSubCategoria"].ToString(); sDataProductos.Append(" / " + oRow["SubCategoria"].ToString()); } sDataProductos.Append("</font></div>"); sDataProductos.Append("</div>"); cDetalleFacturaAdvance oDetalleFacturaAdvance = new cDetalleFacturaAdvance(ref oConn); oDetalleFacturaAdvance.CodigoFactura = pCodFactura; oDetalleFacturaAdvance.CodMarca = oRow["CodMarca"].ToString(); oDetalleFacturaAdvance.CodCategoria = pCodCategoria; oDetalleFacturaAdvance.CodSubCategoria = pCodSubCategoria; oDetalleFacturaAdvance.AdvanceUsd = double.Parse(oRow["Advance USD"].ToString()).ToString(); oDetalleFacturaAdvance.Accion = "CREAR"; oDetalleFacturaAdvance.Put(); sDataValorProductos.Append("<div style=\"padding-top:10px;padding-bottom:10px; padding-left:10px;\">"); sDataValorProductos.Append("<div style=\"float:left;width:30px;\"><font style=\"font-family:Arial; color:#000000; font-size:10pt;\">$</font></div>"); sDataValorProductos.Append("<div style=\"text-align:right;\"><font style=\"font-family:Arial; color:#000000; font-size:10pt;\">").Append(double.Parse(oRow["Advance USD"].ToString()).ToString("#,##0.00")).Append("</font></div>"); sDataValorProductos.Append("</div>"); dTotalFacturaUsd = dTotalFacturaUsd + double.Parse(oRow["Advance USD"].ToString()); } string strNomDeudor = string.Empty; string sNomContacto = string.Empty; string sEmailContacto = string.Empty; string sDireccion = string.Empty; string sComuna = string.Empty; string sCiudad = string.Empty; cContratos oContrato = new cContratos(ref oConn); oContrato.NumContrato = pNumContrato; DataTable dtContrato = oContrato.Get(); if (dtContrato != null) { if (dtContrato.Rows.Count > 0) { cDeudor oDeudor = new cDeudor(ref oConn); oDeudor.NKeyDeudor = dtContrato.Rows[0]["nKey_Deudor"].ToString(); DataTable dtDeudor = oDeudor.Get(); if (dtDeudor != null) { if (dtDeudor.Rows.Count > 0) { strNomDeudor = dtDeudor.Rows[0]["snombre"].ToString(); } } dtDeudor = null; cContactosDeudor oContactosDeudor = new cContactosDeudor(ref oConn); oContactosDeudor.NKeyDeudor = dtContrato.Rows[0]["nKey_Deudor"].ToString(); oContactosDeudor.NkeyCliente = oUsuario.NKeyUsuario; DataTable dtContacto = oContactosDeudor.Get(); if (dtContacto != null) { if (dtContacto.Rows.Count > 0) { sNomContacto = dtContacto.Rows[0]["sNombre"].ToString(); sEmailContacto = dtContacto.Rows[0]["sEmail"].ToString(); } } dtContacto = null; cDirecciones oDirecciones = new cDirecciones(ref oConn); oDirecciones.NKeyDeudor = dtContrato.Rows[0]["nKey_Deudor"].ToString(); oDirecciones.NkeyCliente = oUsuario.NKeyUsuario; DataTable dtDireccion = oDirecciones.Get(); if (dtDireccion != null) { if (dtDireccion.Rows.Count > 0) { sDireccion = dtDireccion.Rows[0]["sDireccion"].ToString(); sComuna = dtDireccion.Rows[0]["sComuna"].ToString(); sCiudad = dtDireccion.Rows[0]["sCiudad"].ToString(); } } dtDireccion = null; } } dtContrato = null; //string sNumInvoce = strNomDeudor.Substring(0, 3).ToUpper(); //sNumInvoce = sNumInvoce.ToUpper(); //string sNumInvoce = "FE" + int.Parse(pCodFactura).ToString("D10"); string sNumInvoce = "FE" + pCodFactura; oFactura.Total = dTotalFacturaUsd.ToString(); oFactura.Periodo = "Advance " + DateTime.Now.Year.ToString(); oFactura.NumInvoice = sNumInvoce; oFactura.Accion = "EDITAR"; oFactura.Put(); cContratos oContratos = new cContratos(ref oConn); oContratos.NumContrato = pNumContrato; oContratos.Accion = "EDITAR"; oContratos.Put(); sHtml.Replace("[#NUMFACTURA]", sNumInvoce); sHtml.Replace("[#NOMEMPRESA]", strNomDeudor); sHtml.Replace("[#NOMCONTACTO]", sNomContacto); sHtml.Replace("[#EMAILCONTACTO]", sEmailContacto); sHtml.Replace("[#DIRECCION]", sDireccion + (!string.IsNullOrEmpty(sComuna) ? ", " + sComuna : string.Empty)); sHtml.Replace("[#CIUDAD]", sCiudad); sHtml.Replace("[#PAIS]", ""); sHtml.Replace("[#FECHA]", DateTime.Now.ToString("d-MMM-yy", CultureInfo.CreateSpecificCulture("en-US"))); sHtml.Replace("[#NUMCONTRATO]", pNoContrato); sHtml.Replace("[#PERIODOQ]", "Advance " + DateTime.Now.Year.ToString()); sHtml.Replace("[#PROPERTY]", ""); sHtml.Replace("[#TERRITORIO]", "CHILE"); sHtml.Replace("[#DETALLEPRODUCTOS]", sDataProductos.ToString()); sHtml.Replace("[#DETALLEVALORPRODUCTOS]", sDataValorProductos.ToString()); sHtml.Replace("[#DUEDATE]", DateTime.Now.AddMonths(1).ToString("d-MMM-yy", CultureInfo.CreateSpecificCulture("en-US"))); //sHtml.Replace("[#TOTAL]", double.Parse(dTotalFacturaUsd.ToString()).ToString("#,##0.00")); sHtml.Replace("[#TOTAL]", double.Parse(dTotalFacturaUsd.ToString()).ToString("N0")); if (!Directory.Exists(Server.MapPath("Facturas_Advance/") + pNoContrato + "/")) { Directory.CreateDirectory(Server.MapPath("Facturas_Advance/") + pNoContrato + "/"); } string sFileHtml = Server.MapPath("Facturas_Advance/") + pNoContrato + "/" + sNumInvoce + ".html"; File.WriteAllText(sFileHtml, sHtml.ToString(), Encoding.UTF8); cLogEventos oLogEventos = new cLogEventos(ref oConn); oLogEventos.AccionLog = "APROBACION MASIVA PRE-FACTURA ADVANCE"; oLogEventos.CodCanal = "2"; oLogEventos.CodFlujo = "4"; oLogEventos.NomFlujo = "FACTURACION ADVANCE"; oLogEventos.NumContrato = pNumContrato; oLogEventos.NoContrato = pNoContrato; oLogEventos.PeriodoLog = "Advance " + DateTime.Now.Year.ToString(); //oLogEventos.RutDeudor = oUsuario.RutLicenciatario; oLogEventos.CodUser = oUsuario.CodUsuario; oLogEventos.RutUser = oUsuario.RutUsuario; oLogEventos.NomUser = oUsuario.Nombres; oLogEventos.ObsLog = "Se ha autorizado correctamente la Factura Advance " + sNumInvoce; oLogEventos.IpLog = oWeb.GetIpUsuario(); oLogEventos.Accion = "CREAR"; oLogEventos.Put(); } oConn.Close(); } } dtFactura = null; } }