//Funcion para factuarar un vehiculos ya recibido public bool Facturar_Vehiculo_Recibido(DataTable vehiculos) { int i; sqlStrings = new ArrayList(); bool status = false; //Debemos crear el registro de mfacturaproveedor FacturaProveedor facturaRepuestos = new FacturaProveedor("FPR", prefijoOrdenPago, prefijoFacturaProveedor, nitProveedor, Almacen, "F", Convert.ToUInt64(numeroOrdenPago), Convert.ToUInt64(numeroFacturaProveedor), //0 1 2 3 4 5 6 7 estadoFacturaProveedor, Convert.ToDateTime(fechaFactura), Convert.ToDateTime(fechaVencimiento), Convert.ToDateTime(null), Convert.ToDateTime(fechaIngreso), //8 9 10 11 Convert.ToDouble(valorFactura), Convert.ToDouble(valorIva), Convert.ToDouble(valorFletes), Convert.ToDouble(valorIvaFletes), Convert.ToDouble(valorRetencion), //12 13 14 15 16 observacion, usuario); //17 18 facturaRepuestos.GrabarFacturaProveedor(false); numeroOrdenPago = facturaRepuestos.NumeroFactura.ToString(); for (i = 0; i < facturaRepuestos.SqlStrings.Count; i++) { sqlStrings.Add(facturaRepuestos.SqlStrings[i].ToString()); } //Cálculo de retenciones RetencionVehiculos = new Retencion(facturaRepuestos.NitProveedor, facturaRepuestos.PrefijoFactura, Convert.ToInt32(facturaRepuestos.NumeroFactura), (Convert.ToDouble(valorFactura) + Convert.ToDouble(valorFletes)), (Convert.ToDouble(valorIva) + Convert.ToDouble(valorIvaFletes)), "V", false); RetencionVehiculos.Guardar_Retenciones(false); for (i = 0; i < RetencionVehiculos.Sqls.Count; i++) { sqlStrings.Add(RetencionVehiculos.Sqls[i].ToString()); } //Ahora debemos actualizar los registros de mvehiculo y asociarlo a la factura del proveedor for (i = 0; i < vehiculos.Rows.Count; i++) { sqlStrings.Add("UPDATE mvehiculo SET pdoc_codiordepago='" + prefijoOrdenPago + "', mfac_numeordepago=" + numeroOrdenPago + ", test_tipoesta=20 WHERE mcat_vin='" + vehiculos.Rows[i][2].ToString() + "' and test_tipoesta = 10"); } if (DBFunctions.Transaction(sqlStrings)) { status = true; processMsg += DBFunctions.exceptions + "<br>"; } else { processMsg += "Error: " + DBFunctions.exceptions + "<br><br>"; } return(status); }
protected void NewAjust(Object Sender, EventArgs E) { if (!VerificarValoresGrillaFacturacion()) { BindDatas(); return; } //QUEDA int diasP = -1; try{ diasP = Convert.ToInt16(txtDiasP.Text); } catch {}; if (diasP < 0 || diasP > 180) { BindDatas(); Utils.MostrarAlerta(Response, "El numero de días de plazo dado NO es válido, debe estar entre 0 y 180!"); return; } if (ddlCodDoc.SelectedIndex == 0 && ddlCodDoc.Items.Count > 1) { BindDatas(); Utils.MostrarAlerta(Response, "Por favor seleccione el Documento para realizar el proceso !!!"); return; } string nLis1 = Request.QueryString["nped"]; string[] nLis = nLis1.ToString().Split('-');//Numero de Lista de empaque string ano_cont = DBFunctions.SingleData("SELECT pano_ano from cinventario"); int ano = Convert.ToInt16(ano_cont); int mes = Convert.ToInt16(DBFunctions.SingleData("select PMES_MES from CINVENTARIO;")); if (ano != Convert.ToDateTime(tbDate.Text).Year || mes != Convert.ToDateTime(tbDate.Text).Month) { Utils.MostrarAlerta(Response, "Fecha NO vigente !!"); if (HttpContext.Current.User.Identity.Name.ToLower().ToString() == "abarrios") // EUROTECK temporalmente permite facturar con otras fechas { } else { return; } } if (ddlCodDoc.SelectedItem.Value == "Seleccione..") { Utils.MostrarAlerta(Response, "Usted NO ha configurado un documento del tipo FC en esta sede para este proceso..!"); return; } btnAjus.Enabled = false; // apaga el boton de facturar PedidoFactura pedfac = new PedidoFactura(txtNIT.Text, Convert.ToDateTime(tbDate.Text), txtObs.Text, // 1 2 3 diasP, nLis1, ddlVendedor.SelectedItem.Value, ddlCodDoc.SelectedItem.Value, Convert.ToUInt32(txtNumDoc.Text), //4 5 6 7 8 Convert.ToDouble(txtTotIF.Text.Substring(1)), Convert.ToDouble(tbIvaFlts.Text.Substring(1)), //9 10 Convert.ToDouble(txtSubTotal.Text.Substring(1)) - Convert.ToDouble(txtDesc.Text.Substring(1)), //11 Convert.ToDouble(txtTotal.Text.Substring(1)), // 12 kit, // 13 AnoA, //14 almacen // 15 ); if (hdCargoTrans.Value != "") { pedfac.CargoOrden = hdCargoTrans.Value; } int n; for (n = 0; n < dtInserts.Rows.Count; n++) { string codI = ""; Referencias.Guardar(dtInserts.Rows[n][0].ToString(), ref codI, DBFunctions.SingleData("SELECT plin_tipo FROM plineaitem WHERE plin_codigo='" + dtInserts.Rows[n][11].ToString() + "'")); pedfac.InsertaFila(codI, Convert.ToDouble(dtInserts.Rows[n][2]), //1 Convert.ToDouble(dtInserts.Rows[n][3]), Convert.ToDouble(dtInserts.Rows[n][4]), //2 3 Convert.ToDouble(dtInserts.Rows[n][5]), Convert.ToDouble(dtInserts.Rows[n][9]), dtInserts.Rows[n]["PPED_CODIGO"].ToString(), dtInserts.Rows[n]["MPED_NUMEPEDI"].ToString()); //4 5 6 7 } // causacion de retenciones en la venta Retencion retencion = new Retencion( txtNIT.Text, ddlCodDoc.SelectedItem.Value, // PrefijoFactura, Convert.ToInt32(txtNumDoc.Text), // NumeroFactura, Convert.ToDouble(txtSubTotal.Text.Substring(1)) - Convert.ToDouble(txtDesc.Text.Substring(1)), //ValorFactura, Convert.ToDouble(txtIVA.Text.Substring(1)), //ValorIva, "R", true); if (pedfac.RealizarFac(true)) { if (retencion.Guardar_Retenciones(true)) { string indexPage = ConfigurationManager.AppSettings["MainIndexPage"]; string indexAjaxPage = ConfigurationManager.AppSettings["MainAjaxPage"]; Session.Clear(); contaOnline.contabilizarOnline(ddlCodDoc.SelectedItem.Value, Convert.ToInt32(txtNumDoc.Text), DateTime.Now, ddlAlmacen.SelectedValue); if (Request.QueryString["orig"] == "Inventarios.ListasEmpaque") { Response.Redirect(indexPage + "?process=Inventarios.ListasEmpaque&actor=C&subprocess=Fact&prefF=" + pedfac.Coddocumentof + "&numF=" + pedfac.Numdocumentof + "&factGen=1"); } //Response.Redirect("" + indexPage + "?process=Inventarios.VistaImpresion&prefFact="+pedfac.Coddocumentof+"&numFact="+pedfac.Numdocumentof+"&cliente="+Tipo+"&orig="+Request.QueryString["orig"]+""); else if (Request.QueryString["orig"] == "Inventarios.CrearPedido") { Response.Redirect(indexAjaxPage + "?process=Inventarios.CrearPedido&actor=C&subprocess=Fact&prefF=" + pedfac.Coddocumentof + "&numF=" + pedfac.Numdocumentof + ""); } //Response.Redirect(indexPage+"?process=Inventarios.ListasEmpaque&actor=C&subprocess=Fact"); //lbInfo.Text +="<br>BIEN :" +pedfac.ProcessMsg; } else { lbInfo.Text += retencion.Mensajes; } } else { lbInfo.Text += "<br>ERROR :" + pedfac.ProcessMsg; } }
//REALIZAR PROCESO------------------------------------- protected void NewAjust(Object Sender, EventArgs E) { if (chkCerrarO.Checked == true) { Totales(); } btnAjus.Enabled = false; int diasP = 0; //Dias plazo double vFlet, vIVAFlet, total, vDescuento, vIVA, vExternos; DateTime fechaProceso; string vend, codigoAlmacen, ccos, carg, prefE, ano_cinv, tipoE; UInt64 numPre; ArrayList sqlStrings; #region Validaciones try{ numPre = Convert.ToUInt32(txtNumFacE.Text); } catch { Utils.MostrarAlerta(Response, "El número de entrada de almacén no es valido!"); BindDatas(); return; } try{ diasP = Convert.ToInt32(txtPlazo.Text); } catch { Utils.MostrarAlerta(Response, "Los días de plazo no son válidos!"); BindDatas(); return; } try { vDescuento = Convert.ToDouble(txtDesc.Text); } catch { Utils.MostrarAlerta(Response, "El valor de los descuentos no es válido!"); return; } try { vExternos = Convert.ToDouble(txtTotalExternos.Text); } catch { Utils.MostrarAlerta(Response, "El valor de los totales externos no es valido!"); return; } try { vFlet = Convert.ToDouble(txtFlet.Text); } catch { Utils.MostrarAlerta(Response, "El valor de los fletes no es valido!"); return; } try { vIVAFlet = Convert.ToDouble(txtTotIF.Text); } catch { Utils.MostrarAlerta(Response, "El valor IVA de los fletes no es valido!"); return; } try { vIVA = Convert.ToDouble(txtIVA.Text); } catch { Utils.MostrarAlerta(Response, "El valor del IVA no es valido!"); return; } try { fechaProceso = Convert.ToDateTime(tbDate.Text); } catch { Utils.MostrarAlerta(Response, "Fecha de proceso no es valido!"); return; } try { total = Convert.ToDouble(txtTotal.Text); } catch { Utils.MostrarAlerta(Response, "El valor del total no es valido!"); return; } if (vExternos < vDescuento) { Utils.MostrarAlerta(Response, "Los descuentos no pueden superar los valores externos!"); return; } //Validar total if (Math.Abs((vExternos - vDescuento + vIVA + vFlet + vIVAFlet) - (total)) > 0.009) { Utils.MostrarAlerta(Response, "El valor del total no coincide!"); BindDatas(); return; } #endregion Validaciones //Aqui Iniciamos el proceso como tal, habiendo superado con exito el proceso de validacion vend = ddlVendedor.SelectedValue; //Codigo del Vendedor codigoAlmacen = ddlAlmacen.SelectedValue; ccos = DBFunctions.SingleData("SELECT pcen_centinv FROM palmacen WHERE palm_almacen='" + codigoAlmacen + "'"); carg = DBFunctions.SingleData("SELECT TVEND_CODIGO FROM PVENDEDOR WHERE PVEN_CODIGO='" + vend + "'"); //Cargo??????? prefE = ""; //Prefijo Documento Interno (PDOCUMENTO) numPre = 0; //Numero de Documento Interno (PDOCUMENTO) ano_cinv = ConfiguracionInventario.Ano; tipoE = DBFunctions.SingleData("SELECT MORD_TIPO FROM MORDENPRODUCCION WHERE PDOC_CODIGO='" + ddlPrefOrden.SelectedValue + "' AND MORD_NUMEORDE=" + ddlNumOrden.SelectedValue + ";"); sqlStrings = new ArrayList(); #region Factura Proveedor ArrayList arrRecepciones = new ArrayList(); FacturaProveedor facturaRepuestos = new FacturaProveedor(); string prefijoFacturaProveedor = ddlPrefE.SelectedValue; UInt64 numeroFacturaProveedor = Convert.ToUInt64(txtNumFacE.Text.Trim()); prefE = prefijoFacturaProveedor; numPre = numeroFacturaProveedor; if (DBFunctions.RecordExist("SELECT * FROM mfacturaproveedor WHERE pdoc_codiordepago='" + prefijoFacturaProveedor + "' AND mfac_numeordepago=" + numeroFacturaProveedor + "")) { numeroFacturaProveedor = Convert.ToUInt32(DBFunctions.SingleData("SELECT pdoc_ultidocu+1 FROM pdocumento WHERE pdoc_codigo='" + prefijoFacturaProveedor + "'")); } FacturaProveedor facturaRepuestosProv = new FacturaProveedor("FPR", prefijoFacturaProveedor, ddlPrefOrden.SelectedValue, txtNIT.Text.Trim(), ddlAlmacen.SelectedValue, "F", numeroFacturaProveedor, Convert.ToUInt64(ddlNumOrden.SelectedValue), "P", fechaProceso, fechaProceso.AddDays(Convert.ToDouble(txtPlazo.Text.Trim())), Convert.ToDateTime(null), fechaProceso, vExternos - vDescuento, vIVA, vFlet, vIVAFlet, 0, txtObs.Text, HttpContext.Current.User.Identity.Name.ToLower()); facturaRepuestosProv.GrabarFacturaProveedor(false); numPre = facturaRepuestosProv.NumeroFactura; for (int i = 0; i < facturaRepuestosProv.SqlStrings.Count; i++) { sqlStrings.Add(facturaRepuestosProv.SqlStrings[i].ToString()); } #endregion Factura Proveedor #region Retenciones DataTable dtRet = TablaRetenciones(); dtRet.Rows[0][0] = "1"; dtRet.Rows[0][1] = DBFunctions.SingleData("SELECT MITE_CODIGO FROM MITEMS WHERE TORI_CODIGO='X' FETCH FIRST 1 ROWS ONLY;"); dtRet.Rows[0][2] = ""; dtRet.Rows[0][3] = 1; dtRet.Rows[0][4] = 1; dtRet.Rows[0][5] = vExternos; dtRet.Rows[0][6] = vDescuento; dtRet.Rows[0][7] = (vIVA * 100) / vExternos; dtRet.Rows[0][8] = ""; dtRet.Rows[0][9] = total; dtRet.Rows[0][10] = ""; dtRet.Rows[0][11] = ""; try { Retencion RetencionItems = new Retencion(facturaRepuestosProv.NitProveedor, facturaRepuestosProv.PrefijoFactura, Convert.ToInt32(facturaRepuestosProv.NumeroFactura), dtRet, (facturaRepuestosProv.ValorFactura + facturaRepuestosProv.ValorFletes), (facturaRepuestosProv.ValorIva + facturaRepuestosProv.ValorIvaFletes), "R", false); RetencionItems.Guardar_Retenciones(false); for (int i = 0; i < RetencionItems.Sqls.Count; i++) { sqlStrings.Add(RetencionItems.Sqls[i].ToString()); } } catch (Exception ex) { Utils.MostrarAlerta(Response, "Error en Retenciones. Detalles : \\n" + ex.Message + ""); return; } #endregion #region Movimiento de Kardex string ano_cont = ConfiguracionInventario.Ano; int tm = 20; //Entradas de proveedor //Creamos el Objeto manejador de movimientos de kardex utilizando el constructor #2 Movimiento Mov = new Movimiento(prefE, numPre, tm, fechaProceso, txtNIT.Text, codigoAlmacen, vend, carg, ccos, "N"); double cant, valU, costP, costPH, costPA, costPHA, invI, invIA, pIVA, pDesc, cantDev, valP; ArrayList Prrs = new ArrayList(); //Prerecepciones de la lista DataTable dtItems = (DataTable)ViewState["ITEMS"]; //DITEMS for (int n = 0; n < dtItems.Rows.Count; n++) { string codI = dtItems.Rows[n]["CODIGO"].ToString(); string prefijoDocumentoReferencia = ""; UInt64 numeroDocumentoReferencia = 0; prefijoDocumentoReferencia = ddlPrefOrden.SelectedValue; // prefijo Orden numeroDocumentoReferencia = Convert.ToUInt32(ddlNumOrden.SelectedValue); // Numero Orden cant = Convert.ToDouble(dtItems.Rows[n]["CANTIDAD"]); //cantidad ingresada valU = Convert.ToDouble(dtItems.Rows[n]["VALOR"]); //(Costeo) pIVA = 0; //iva pDesc = 0; //descuento costP = SaldoItem.ObtenerCostoPromedio(codI, ano_cont); costPH = SaldoItem.ObtenerCostoPromedioHistorico(codI, ano_cont); costPA = SaldoItem.ObtenerCostoPromedioAlmacen(codI, ano_cont, codigoAlmacen); costPHA = SaldoItem.ObtenerCostoPromedioHistoricoAlmacen(codI, ano_cont, codigoAlmacen); invI = SaldoItem.ObtenerCantidadActual(codI, ano_cont); //Inventario inicial invIA = SaldoItem.ObtenerCantidadActualAlmacen(codI, ano_cont, codigoAlmacen); //Inventario inicial Almacen cantDev = 0; //devolucion valP = costP; //Valor publico Mov.InsertaFila(codI, cant, valU, costP, costPA, pIVA, pDesc, cantDev, costPH, costPHA, valP, invI, invIA, prefijoDocumentoReferencia, numeroDocumentoReferencia); // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 } Mov.RealizarMov(false); for (int i = 0; i < Mov.SqlStrings.Count; i++) { sqlStrings.Add(Mov.SqlStrings[i].ToString()); } #endregion #region Actualizar detalle y orden produccion //Actualizar cantidad entregada for (int n = 0; n < dtItems.Rows.Count; n++) { sqlStrings.Add( "UPDATE DORDENPRODUCCION SET " + "DORD_CANTENTR=DORD_CANTENTR+" + dtItems.Rows[n]["CANTIDAD"] + " " + "WHERE PDOC_CODIGO='" + ddlPrefOrden.SelectedValue + "' AND " + "MORD_NUMEORDE=" + ddlNumOrden.SelectedValue + " AND " + "PENS_CODIGO='" + dtItems.Rows[n]["ENSAMBLE"] + "' AND " + "MITE_CODIGO='" + dtItems.Rows[n]["CODIGO"] + "';"); } //cerrar mordenproduccion si se recibieron todos los items sqlStrings.Add( "UPDATE MORDENPRODUCCION MO SET MO.TEST_ESTADO='F' " + "WHERE MO.pdoc_codigo='" + ddlPrefOrden.SelectedValue + "' AND mord_numeorde=" + ddlNumOrden.SelectedValue + " AND " + "NOT EXISTS(" + " SELECT * FROM DORDENPRODUCCION DOR " + " WHERE " + " DOR.pdoc_codigo=MO.pdoc_codigo AND DOR.mord_numeorde=MO.mord_numeorde AND " + " DOR.DORD_CANTXPROD>DORD_CANTENTR " + ");"); #endregion #region Costeo //Costeo sqlStrings.Add("INSERT INTO dcostoproduccion values(" + "'" + ddlPrefE.SelectedValue + "'," + numPre + "," + Convert.ToDouble(ViewState["TOT_MATPRIMA"]).ToString() + "," + Convert.ToDouble(ViewState["TOT_TERCEROS"]).ToString() + "," + Convert.ToDouble(ViewState["TOT_MANOBRA"]).ToString() + "," + Convert.ToDouble(ViewState["TOT_CIF"]).ToString() + "," + Convert.ToDouble(ViewState["TOT_MAQUINARIA"]).ToString() + "," + "'" + ViewState["MITE_CODIGO"].ToString() + "'" + ");"); #endregion Costeo //Cerrar orden de producción if (chkCerrarO.Checked == true) { string sql = CerrarOrdenProduccion(); if (sql != "") { sqlStrings.Add(sql); } else { Utils.MostrarAlerta(Response, "Se presentó un error al intentar cerrar la orden de ooperación!"); return; } } if (chkCerrarO.Checked == false) { if (DBFunctions.Transaction(sqlStrings)) { Response.Redirect("" + indexPage + "?process=Produccion.EntradasProduccion&path=" + Request.QueryString["path"] + "&pref=" + prefijoFacturaProveedor + "&num=" + numeroFacturaProveedor); } else { lbInfo.Text += "<br>Error : Detalles <br>" + DBFunctions.exceptions; } } else { if (DBFunctions.Transaction(sqlStrings) && RealizarAjusteInventario()) { Response.Redirect("" + indexPage + "?process=Produccion.EntradasProduccion&path=" + Request.QueryString["path"] + "&pref=" + prefijoFacturaProveedor + "&num=" + numeroFacturaProveedor + "&act=1&prefA=" + ddlPrefijoAjuste.SelectedValue + "&numA=" + lblNumeroAjuste.Text); } else { lbInfo.Text += "<br>Error : Detalles <br>" + DBFunctions.exceptions; } } }
public void Ejecutar(object sender, System.EventArgs e) { uint ndrefE = 0; //Numero Factura - Numero Factura Entrada DateTime fechaProceso; string vend, codigoAlmacen, ccos, carg, prefE, ano_cinv, tipoE; UInt64 numPre; ArrayList sqlStrings = new ArrayList(); string nit, ciudad; int anoV; UInt32 cVIN; #region Validaciones try{ anoV = Convert.ToInt16(txtAno.Text); if (Math.Abs(DateTime.Now.Year - anoV) > 5) { throw(new Exception()); } } catch { Utils.MostrarAlerta(Response, "Año no válido."); return; } if (dtEnsambles.Rows.Count == 0) { Utils.MostrarAlerta(Response, "No hay ensambles seleccionados."); return; } try{ ndrefE = Convert.ToUInt32(txtNumFacE.Text); } catch { Utils.MostrarAlerta(Response, "El número de entrada de almacén no es valido!"); return; } Utils.MostrarAlerta(Response, "El número de entrada de almacén no es valido!"); try{ fechaProceso = Convert.ToDateTime(tbDate.Text); } catch { Utils.MostrarAlerta(Response, "Fecha de proceso no es valido!"); return; } #endregion Validaciones //Aqui Iniciamos el proceso como tal, habiendo superado con exito el proceso de validacion nit = DBFunctions.SingleData("SELECT MNIT_NIT FROM CEMPRESA;"); ciudad = DBFunctions.SingleData("SELECT CEMP_CIUDAD FROM CEMPRESA;"); vend = ddlVendedor.SelectedValue; //Codigo del Vendedor codigoAlmacen = ddlAlmacen.SelectedValue; ccos = DBFunctions.SingleData("SELECT pcen_centinv FROM palmacen WHERE palm_almacen='" + codigoAlmacen + "'"); carg = DBFunctions.SingleData("SELECT TVEND_CODIGO FROM PVENDEDOR WHERE PVEN_CODIGO='" + vend + "'"); //Cargo??????? prefE = ""; //Prefijo Documento Interno (PDOCUMENTO) numPre = 0; //Numero de Documento Interno (PDOCUMENTO) ano_cinv = ConfiguracionInventario.Ano; tipoE = DBFunctions.SingleData("SELECT MORD_TIPO FROM MORDENPRODUCCION WHERE PDOC_CODIGO='" + ddlPrefOrden.SelectedValue + "' AND MORD_NUMEORDE=" + ddlNumOrden.SelectedValue + ";"); sqlStrings = new ArrayList(); #region Factura Proveedor ArrayList arrRecepciones = new ArrayList(); FacturaProveedor facturaRepuestos = new FacturaProveedor(); string prefijoFacturaProveedor = ddlPrefE.SelectedValue; UInt64 numeroFacturaProveedor = Convert.ToUInt64(txtNumFacE.Text.Trim()); prefE = prefijoFacturaProveedor; numPre = numeroFacturaProveedor; if (DBFunctions.RecordExist("SELECT * FROM mfacturaproveedor WHERE pdoc_codiordepago='" + prefijoFacturaProveedor + "' AND mfac_numeordepago=" + numeroFacturaProveedor + "")) { numeroFacturaProveedor = Convert.ToUInt32(DBFunctions.SingleData("SELECT pdoc_ultidocu+1 FROM pdocumento WHERE pdoc_codigo='" + prefijoFacturaProveedor + "'")); } FacturaProveedor facturaRepuestosProv = new FacturaProveedor("FPR", prefijoFacturaProveedor, ddlPrefOrden.SelectedValue, nit, ddlAlmacen.SelectedValue, "F", numeroFacturaProveedor, Convert.ToUInt64(ddlNumOrden.SelectedValue), "V", fechaProceso, fechaProceso.AddDays(0), Convert.ToDateTime(null), fechaProceso, 0, 0, 0, 0, 0, txtObs.Text, HttpContext.Current.User.Identity.Name.ToLower()); facturaRepuestosProv.GrabarFacturaProveedor(false); numPre = facturaRepuestosProv.NumeroFactura; for (int i = 0; i < facturaRepuestosProv.SqlStrings.Count; i++) { sqlStrings.Add(facturaRepuestosProv.SqlStrings[i].ToString()); } #endregion Factura Proveedor #region Retenciones DataTable dtRet = TablaRetenciones(); dtRet.Rows[0][0] = "1"; dtRet.Rows[0][1] = DBFunctions.SingleData("SELECT MITE_CODIGO FROM MITEMS WHERE TORI_CODIGO='X' FETCH FIRST 1 ROWS ONLY;"); dtRet.Rows[0][2] = ""; dtRet.Rows[0][3] = 1; dtRet.Rows[0][4] = 1; dtRet.Rows[0][5] = 0; dtRet.Rows[0][6] = 0; dtRet.Rows[0][7] = 0; dtRet.Rows[0][8] = ""; dtRet.Rows[0][9] = 0; dtRet.Rows[0][10] = ""; dtRet.Rows[0][11] = ""; try { Retencion RetencionItems = new Retencion(facturaRepuestosProv.NitProveedor, facturaRepuestosProv.PrefijoFactura, Convert.ToInt32(facturaRepuestosProv.NumeroFactura), dtRet, (facturaRepuestosProv.ValorFactura + facturaRepuestosProv.ValorFletes), (facturaRepuestosProv.ValorIva + facturaRepuestosProv.ValorIvaFletes), "R", false); RetencionItems.Guardar_Retenciones(false); for (int i = 0; i < RetencionItems.Sqls.Count; i++) { sqlStrings.Add(RetencionItems.Sqls[i].ToString()); } } catch (Exception ex) { Utils.MostrarAlerta(Response, "Error en Retenciones. Detalles : \\n" + ex.Message + ""); return; } #endregion #region Vehiculos, catalogos, detalles ordenes, pcatalogovehiculo bool vehiculos = false; for (int n = 0; n < dtEnsambles.Rows.Count; n++) { if (((CheckBox)dgEnsambles.Items[n].FindControl("chkUsarE")).Checked) { cVIN = Convert.ToUInt32(dtEnsambles.Rows[n]["MCAT_VIN"].ToString().Substring(12)); //Insertar mcatalogovehiculo sqlStrings.Add("INSERT INTO MCATALOGOVEHICULO VALUES (" + "'" + dtEnsambles.Rows[n]["PCAT_CODIGO"].ToString() + "'," + //Catalogo "'" + dtEnsambles.Rows[n]["MCAT_VIN"].ToString() + "'," + //VIN "'" + dtEnsambles.Rows[n]["MCAT_VIN"].ToString().Substring(12) + "'," + //placa "'" + dtEnsambles.Rows[n]["MCAT_VIN"].ToString() + "'," + //Motor "'" + nit + "'," + //NIT "NULL," + "'" + dtEnsambles.Rows[n]["MCAT_VIN"].ToString() + "'," + //Chasis "'" + dtEnsambles.Rows[n]["PCOL_CODIGO"].ToString() + "'," + //Color anoV + ",'A',NULL,NULL,'" + tbDate.Text + "',0,NULL,0,0,NULL,NULL,'" + tbDate.Text + "',null)"); //Insertar mvehiculo sqlStrings.Add("INSERT INTO MVEHICULO VALUES (" + "DEFAULT," + //Inventario "NULL," + //Catalogo "'" + dtEnsambles.Rows[n]["MCAT_VIN"].ToString() + "'," + //VIN "1," + //Estado "NULL,NULL," + //Pedido "'" + nit + "'," + //NIT "0," + //No recepcion "'" + tbDate.Text + "'," + //Fecha Recep "'" + tbDate.Text + "'," + //Fecha Disponb. "0," + //Kilometraje "'N'," + //Nuevo "'" + dtEnsambles.Rows[n]["MCAT_VIN"].ToString() + "'," + //Manifiesto "'" + tbDate.Text + "'," + //Fecha Manifiesto "'" + ciudad + "'," + //Aduana "NULL," + //Version "'" + dtEnsambles.Rows[n]["MCAT_VIN"].ToString() + "'," + //No Levante "NULL,NULL," + //Vr Gastos, Inflacion "'P'," + //Tipo de compra "NULL,NULL," + //Orden de pago "0," + //Valor compra a proveedor "NULL," + //Fecha entrega "'" + nit + "'," + //NIT Proveedor "NULL,NULL" + //Prenda,IVA ");"); //Actualizar pcatalogovehiculo sqlStrings.Add("update pcatalogovehiculo " + "set pcat_consecutivo=" + cVIN + " " + "WHERE PCAT_CODIGO='" + dtEnsambles.Rows[n]["PCAT_CODIGO"].ToString() + "' AND pcat_consecutivo<" + cVIN + ";"); //Actualizar dordenproduccion sqlStrings.Add("UPDATE DORDENPRODUCCION SET " + "DORD_CANTENTR=DORD_CANTENTR+1 " + "WHERE PDOC_CODIGO='" + ddlPrefOrden.SelectedValue + "' AND " + "MORD_NUMEORDE=" + ddlNumOrden.SelectedValue + " AND " + "PCAT_CODIGO='" + dtEnsambles.Rows[n]["PCAT_CODIGO"] + "';"); vehiculos = true; } } if (!vehiculos) { Utils.MostrarAlerta(Response, "No seleccionó ningún elemento."); return; } #endregion #region Orden Produccion //cerrar mordenproduccion si se recibieron todos los items sqlStrings.Add( "UPDATE MORDENPRODUCCION MO SET MO.TEST_ESTADO='F' " + "WHERE MO.pdoc_codigo='" + ddlPrefOrden.SelectedValue + "' AND mord_numeorde=" + ddlNumOrden.SelectedValue + " AND " + "NOT EXISTS(" + " SELECT * FROM DORDENPRODUCCION DOR " + " WHERE " + " DOR.pdoc_codigo=MO.pdoc_codigo AND DOR.mord_numeorde=MO.mord_numeorde AND " + " DOR.DORD_CANTXPROD>DORD_CANTENTR " + ");"); #endregion if (DBFunctions.Transaction(sqlStrings)) { Response.Redirect("" + indexPage + "?process=Produccion.EntradasEnsambles&path=" + Request.QueryString["path"] + "&pref=" + prefijoFacturaProveedor + "&num=" + numeroFacturaProveedor); } else { lbInfo.Text += "<br>Error : Detalles <br>" + DBFunctions.exceptions; } }
//Funcion para facturar un vehiculo ya recibido public bool Facturar_Vehiculo_Recibido(string catalogoVehiculo, string vinVehiculo) { int i; sqlStrings = new ArrayList(); bool status = false; FacturaProveedor facturaVehiculo = new FacturaProveedor("FPR", prefijoOrdenPago, prefijoFacturaProveedor, nitProveedor, Almacen, "F", Convert.ToUInt64(numeroOrdenPago), Convert.ToUInt64(numeroFacturaProveedor), //0 1 2 3 4 5 6 7 estadoFacturaProveedor, Convert.ToDateTime(fechaFactura), Convert.ToDateTime(fechaVencimiento), Convert.ToDateTime(null), Convert.ToDateTime(fechaIngreso), //8 9 10 11 Convert.ToDouble(valorFactura), Convert.ToDouble(valorIva), Convert.ToDouble(valorFletes), Convert.ToDouble(valorIvaFletes), Convert.ToDouble(valorRetencion), //12 13 14 15 16 observacion, usuario); //17 18 facturaVehiculo.GrabarFacturaProveedor(false); numeroOrdenPago = facturaVehiculo.NumeroFactura.ToString(); for (i = 0; i < facturaVehiculo.SqlStrings.Count; i++) { sqlStrings.Add(facturaVehiculo.SqlStrings[i].ToString()); } //Cálculo de retenciones RetencionVehiculos = new Retencion(facturaVehiculo.NitProveedor, facturaVehiculo.PrefijoFactura, Convert.ToInt32(facturaVehiculo.NumeroFactura), (Convert.ToDouble(valorFactura) + Convert.ToDouble(valorFletes)), (Convert.ToDouble(valorIva) + Convert.ToDouble(valorIvaFletes)), "V", false); if (dtRetenciones == null) { RetencionVehiculos.Guardar_Retenciones(false); } else { RetencionVehiculos.Guardar_Retenciones(false, dtRetenciones); } for (i = 0; i < RetencionVehiculos.Sqls.Count; i++) { sqlStrings.Add(RetencionVehiculos.Sqls[i].ToString()); } //Ahora debemos actualizar el registro de mvehiculo y asociarlo a la factura del proveedor //Si el vehiculo esta facturado o asignado no se modifica el estado del vehiculo. string estadoVehiculo = DBFunctions.SingleData("SELECT test_tipoesta FROM dbxschema.mvehiculo WHERE mcat_vin='" + vinVehiculo + "' order by mveh_inventario desc FETCH FIRST 1 ROWS ONLY;"); Int32 numeroVehiculo = Convert.ToInt32(DBFunctions.SingleData("SELECT coalesce(mveh_inventario,0) FROM dbxschema.mvehiculo WHERE mcat_vin='" + vinVehiculo + "' order by mveh_inventario desc FETCH FIRST 1 ROWS ONLY;")); if (estadoVehiculo == "10") { sqlStrings.Add("UPDATE mvehiculo SET pdoc_codiordepago='" + prefijoOrdenPago + "', mfac_numeordepago=" + numeroOrdenPago + ", mveh_valocomp=" + valorFactura + ", MVEH_VALOIVA=" + valorIva + ", test_tipoesta=20 WHERE mveh_inventario = " + numeroVehiculo + " "); } else { sqlStrings.Add("UPDATE mvehiculo SET pdoc_codiordepago='" + prefijoOrdenPago + "', mfac_numeordepago=" + numeroOrdenPago + ", mveh_valocomp=" + valorFactura + ", MVEH_VALOIVA=" + valorIva + " WHERE mveh_inventario = " + numeroVehiculo + " "); } //Ahora Actualizamos el consecutivo if (DBFunctions.Transaction(sqlStrings)) { status = true; processMsg += DBFunctions.exceptions + "<br>"; } else { processMsg += "Error: " + DBFunctions.exceptions + "<br><br>"; } return(status); }
//factura por vehículo(Facturación Excel) public bool Realizar_Recepcion_Excel(bool factura, bool grabar) { sqlStrings = new ArrayList(); bool status = false; int i; //Se cambia por el primer NIT del proceso. String nitSeleccionado = nitProveedor2; if (nitProveedor2 == "" || nitProveedor2 == null) { nitSeleccionado = nitProveedor; } if (factura) { FacturaProveedor facturaRepuestos = new FacturaProveedor("FPR", prefijoOrdenPago, prefijoFacturaProveedor, nitProveedor, Almacen, "F", Convert.ToUInt64(numeroOrdenPago), Convert.ToUInt64(numeroFacturaProveedor), //0 1 2 3 4 5 6 7 estadoFacturaProveedor, Convert.ToDateTime(fechaFactura), Convert.ToDateTime(fechaVencimiento), Convert.ToDateTime(null), Convert.ToDateTime(fechaIngreso), //8 9 10 11 Convert.ToDouble(valorFactura), Convert.ToDouble(valorIva), Convert.ToDouble(valorFletes), Convert.ToDouble(valorIvaFletes), Convert.ToDouble(valorRetencion), //12 13 14 15 16 observacion, usuario); //17 18 if (valorAbono != null && valorAbono != "") { facturaRepuestos.ValorAbonos = Convert.ToDouble(valorAbono); } facturaRepuestos.GrabarFacturaProveedorExcel(false); numeroOrdenPago = facturaRepuestos.NumeroFactura.ToString(); for (i = 0; i < facturaRepuestos.SqlStrings.Count; i++) { sqlStrings.Add(facturaRepuestos.SqlStrings[i].ToString()); } //Cálculo de retenciones RetencionVehiculos = new Retencion(nitProveedor2, facturaRepuestos.PrefijoFactura, Convert.ToInt32(facturaRepuestos.NumeroFactura), (Convert.ToDouble(valorFactura) + Convert.ToDouble(valorFletes)), (Convert.ToDouble(valorIva) + Convert.ToDouble(valorIvaFletes)), "V", false); //if (dtRetenciones == null) RetencionVehiculos.Guardar_Retenciones(false); } if (!DBFunctions.RecordExist("SELECT * FROM mcatalogovehiculo WHERE mcat_vin='" + drInformacionTecnica[1] + "' ")) { sqlStrings.Add("INSERT INTO mcatalogovehiculo VALUES('" + drInformacionTecnica[0] + "','" + drInformacionTecnica[1] + "','" + drInformacionTecnica[8] + "','" + drInformacionTecnica[2] + "','" + DBFunctions.SingleData("SELECT mnit_nit FROM cempresa") + "','" + drInformacionTecnica[3] + "','" + drInformacionTecnica[4] + "','" + drInformacionTecnica[5] + "'," + drInformacionTecnica[6] + ",'" + drInformacionTecnica[7] + "',null,null,'" + DateTime.Now.ToString("yyyy-MM-dd") + "',0,null,0,1000,null,null,'" + DateTime.Now.ToString("yyyy-MM-dd") + "',null)"); } //Ahora Agregamos EL REGISTRO A MVEHICULO string nitPropietario = DBFunctions.SingleData("SELECT mnit_nit FROM cempresa"); //string i = drInformacionComercial[1]; if (drInformacionComercial[13].ToString() != "P") { nitPropietario = nitProveedor; // En las Consignaciones o Retomas de Vehiculos, se deja el nit del proveedor como propietario } if (factura) { sqlStrings.Add("INSERT INTO mvehiculo (MVEH_INVENTARIO,PVEN_MERCADEISTA,MCAT_VIN,TEST_TIPOESTA,PDOC_CODIGOPEDIPROV,MPED_NUMERO,MNIT_NIT,MVEH_NUMERECE,MVEH_FECHRECE,MVEH_FECHDISP,MVEH_KILOMETR,TCLA_CODIGO,MVEH_NUMEMANI,MVEH_FECHMANI,MVEH_ADUANA,MVEH_NUMED_O,MVEH_NUMELEVANTE,MVEH_VALOGAST,MVEH_VALOINFL,TCOM_CODIGO,PDOC_CODIORDEPAGO,MFAC_NUMEORDEPAGO,MVEH_VALOCOMP,MVEH_FECHENTR,MPRO_NIT,MVEH_PRENDA,MVEH_VALOIVA) VALUES(" + drInformacionComercial[0] + ",null,'" + drInformacionComercial[2] + "',20,'null',null,'" + nitPropietario + "'," + drInformacionComercial[3] + ",'" + drInformacionTecnica[9] + "','" + drInformacionComercial[5] + "'," + drInformacionComercial[6] + ",'" + drInformacionComercial[7] + "','" + drInformacionComercial[8] + "','" + drInformacionComercial[9] + "','" + drInformacionComercial[10] + "','" + drInformacionComercial[11] + "','" + drInformacionComercial[12] + "',0,0,'" + drInformacionComercial[13] + "','" + prefijoOrdenPago + "'," + numeroOrdenPago + "," + drInformacionComercial[14] + ",null,'" + nitSeleccionado + "',null," + valorIva + ")"); //sqlStrings.Add("INSERT INTO mvehiculo VALUES(" + tbInformacionComercial.Rows[i][0].ToString() + ",null,'" + tbInformacionComercial.Rows[i][2].ToString() + "',20,'" + prefijoPedido + "'," + numeroPedido + ",'" + nitPropietario + "'," + tbInformacionComercial.Rows[i][3].ToString() + ",'" + tbInformacionComercial.Rows[i][4].ToString() + "','" + tbInformacionComercial.Rows[i][5].ToString() + "'," + tbInformacionComercial.Rows[i][6].ToString() + ",'" + tbInformacionComercial.Rows[i][7].ToString() + "','" + tbInformacionComercial.Rows[i][8].ToString() + "','" + tbInformacionComercial.Rows[i][9].ToString() + "','" + tbInformacionComercial.Rows[i][10].ToString() + "','" + tbInformacionComercial.Rows[i][11].ToString() + "','" + tbInformacionComercial.Rows[i][12].ToString() + "',0,0,'" + tbInformacionComercial.Rows[i][13].ToString() + "','" + prefijoOrdenPago + "'," + numeroOrdenPago + "," + tbInformacionComercial.Rows[i][14].ToString() + ",null,'" + nitProveedor + "',null," + valorIva + ")"); sqlStrings.Add("UPDATE dpedidovehiculoproveedor SET dped_cantingr = dped_cantingr + 1 WHERE pdoc_codigo='" + this.prefijoPedido + "' AND mped_numepedi=" + this.numeroPedido + " AND pcat_codigo='" + drInformacionComercial[1] + "'"); //Ahora creamos el registro en la tabla mubicacionvehiculo sqlStrings.Add("INSERT INTO mubicacionvehiculo VALUES(default,'" + drInformacionComercial[1] + "','" + drInformacionComercial[2] + "','" + this.ubicacion + "','" + DateTime.Now.ToString("yyyy-MM-dd") + "',null,null,null,null)"); } for (i = 0; i < sqlRels.Count; i++) { sqlStrings.Add(sqlRels[i].ToString()); } if (grabar) { if (DBFunctions.Transaction(sqlStrings)) { status = true; processMsg += DBFunctions.exceptions + "<br>"; } else { processMsg += "Error" + DBFunctions.exceptions + "<br><br>"; } } else { status = true; } return(status); }