コード例 #1
0
        //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);
        }
コード例 #2
0
        protected void Guardar_Proveedor(DataTable dtConceptos, ref ArrayList sqlStrings)
        {
            ArrayList totales = new ArrayList();

            totales = this.Calcular_Totales();
            facs    = new ArrayList();
            FacturaProveedor miFacturaP = new FacturaProveedor();
            string           completo;

            // Se actualiza el valor del servicio a los proveedores que este mes se cumple un Año de contrato
            miFacturaP.SqlRels.Add("UPDATE pcausacionPROVEEDOR SET PCAU_VALOCAUS = ROUND(PCAU_VALOCAUS*(1+(PCAU_PORCINCR*0.01)),0) WHERE MONTH(PCAU_FECHINIC) = (SELECT PMES_MESVIGENTE FROM CCARTERA);");

            string[] partes;
            int      numero = Convert.ToInt32(DBFunctions.SingleData("SELECT pdoc_ultidocu FROM dbxschema.pdocumento WHERE	pdoc_codigo='"+ this.ddlPrefijo.SelectedValue + "'"));

            for (int i = 0; i < totales.Count; i++)
            {
                completo   = totales[i].ToString();
                partes     = completo.Split('-');
                miFacturaP = new FacturaProveedor(ddlPrefijo.SelectedValue, ddlPrefijo.SelectedValue, ddlPrefijo.SelectedValue, partes[0], ddlAlmacen.SelectedValue, "F", Convert.ToUInt64(numero + i + 1), Convert.ToUInt64(numero + i + 1),
                                                  "V", DateTime.Now, DateTime.Now, Convert.ToDateTime(null), DateTime.Now, Convert.ToDouble(partes[1]), Convert.ToDouble(partes[2]),
                                                  0, 0, 0, tbDetalle.Text, HttpContext.Current.User.Identity.Name.ToLower());
                facs.Add(ddlPrefijo.SelectedValue + "-" + (numero + i + 1).ToString());
                Session["facs"] = facs;
                for (int j = 0; j < dtConceptos.Rows.Count; j++)
                {
                    if (dtConceptos.Rows[j][0].ToString() == partes[0])
                    {
                        miFacturaP.SqlRels.Add("INSERT INTO dfacturaproveedor VALUES(default,'@1',@2,'" + dtConceptos.Rows[j][3].ToString() + " " + tbDetalle.Text + "'," + dtConceptos.Rows[j][1].ToString() + "," + (Convert.ToDouble(dtConceptos.Rows[j][1]) * (Convert.ToDouble(dtConceptos.Rows[j][2]) / 100)).ToString() + ")");
                    }
                }
                if (miFacturaP.GrabarFacturaProveedor(false))
                {
                    this.Sacar_SqlsP(miFacturaP, ref sqlStrings);
                }
                else
                {
                    sqlStrings.Add(miFacturaP.ProcessMsg);
                }
            }
        }
コード例 #3
0
        //Seleccionar Embarque
        protected void btnSeleccionar_Click(object sender, System.EventArgs e)
        {
            ArrayList sqlStrings = new ArrayList();
            DataTable dtVehiculos = (DataTable)ViewState["VEHICULOS"];
            string    manifiesto = txtManifiesto.Text.Trim();
            string    d_o = txtDO.Text.Trim();
            string    levante = txtLevante.Text.Trim();
            string    aduana = txtAduana.Text.Trim();
            double    tasaCambioI = 0, tasaCambioN = 0, totalEmbarque = 0, valor, totalIVA = 0, subtotal = 0, totalEmbarqueM = 0;
            string    tGN, tGE;
            double    totalGastosE = 0, totalGastosN = 0;
            double    unidadesEmbarque = 0;
            DateTime  fechaProceso;

            #region Validaciones
            for (int n = 0; n < dgEnsambles.Items.Count; n++)
            {
                if (((CheckBox)dgEnsambles.Items[n].FindControl("chkUsarE")).Checked)
                {
                    sqlStrings.Add(
                        "UPDATE MVEHICULO " +
                        "SET MVEH_NUMEMANI='" + txtManifiesto.Text + "', MVEH_NUMED_O='" + txtDO.Text + "', " +
                        "MVEH_NUMELEVANTE='" + txtLevante.Text + "', MVEH_ADUANA='" + txtAduana.Text + "', " +
                        "TEST_TIPOESTA=20 " +
                        "WHERE MCAT_VIN='" + dtVehiculos.Rows[n]["MCAT_VIN"] + "';");
                    dtVehiculos.Rows[n]["USAR"] = 1;
                }
                else
                {
                    dtVehiculos.Rows[n]["USAR"] = 0;
                }
            }
            if (sqlStrings.Count == 0)
            {
                Utils.MostrarAlerta(Response, "No seleccionó vehículos.");
                return;
            }
            //Tasa de cambio I
            try
            {
                tasaCambioI = Convert.ToDouble(txtTasaCambioI.Text);
            }
            catch
            {
                Utils.MostrarAlerta(Response, "Tasa de cambio no válida.");
                return;
            }
            //Tasa de cambio N
            try
            {
                tasaCambioN = Convert.ToDouble(txtTasaCambio.Text);
            }
            catch
            {
                Utils.MostrarAlerta(Response, "Tasa de cambio no válida.");
                return;
            }
            //Embarques
            if (ddlEmbarque.Items.Count == 0)
            {
                Utils.MostrarAlerta(Response, "No hay embarques.");
                return;
            }
            //Manifiesto
            if (manifiesto.Length == 0)
            {
                Utils.MostrarAlerta(Response, "Debe ingresar el manifiesto.");
                return;
            }
            //DO
            if (d_o.Length == 0)
            {
                Utils.MostrarAlerta(Response, "Debe ingresar el D.O.");
                return;
            }
            //Levante...
            if (levante.Length == 0)
            {
                Utils.MostrarAlerta(Response, "Debe ingresar el levante.");
                return;
            }
            //Aduana
            if (aduana.Length == 0)
            {
                Utils.MostrarAlerta(Response, "Debe la aduana.");
                return;
            }
            //Fecha proceso
            try
            {
                fechaProceso = Convert.ToDateTime(txtFecha.Text);
            }
            catch
            {
                Utils.MostrarAlerta(Response, "Fecha no válida.");
                return;
            }
            #endregion

            #region Consultar Dembarqueckd
            //Detalles
            DataSet dsEmbarque = new DataSet();
            DBFunctions.Request(dsEmbarque, IncludeSchema.NO,
                                "SELECT * FROM DEMBARQUECKD WHERE MEMB_SECUENCIA=" + ddlEmbarque.SelectedValue + ";");

            btEjecutar.Enabled      = false;
            plcNacionalizar.Visible = true;
            #endregion

            #region Gastos
            //Cargar gastos
            DataSet dsGastos = new DataSet();
            DBFunctions.Request(dsGastos, IncludeSchema.NO,
                                "Select df.PDOC_CODIORDEPAGO PREFO,df.MFAC_NUMEORDEPAGO NUMO,df.pgas_codigo,pg.PGAS_NOMBRE gasto,sum(df.dfac_valorgasto) valor, pg.PGAS_MODENACI " +
                                "from DFACTURAGASTOEMBARQUE df, PGASTODIRECTO pg " +
                                "where memb_secuencia=" + ddlEmbarque.SelectedValue + " and pg.PGAS_CODIGO=df.PGAS_CODIGO " +
                                "group by memb_secuencia,df.pgas_codigo,pgas_nombre,df.PDOC_CODIORDEPAGO,df.MFAC_NUMEORDEPAGO,pg.PGAS_MODENACI;");
            dgrGastos.DataSource = dsGastos.Tables[0];
            dgrGastos.DataBind();

            txtManifiesto.Enabled = txtDO.Enabled = txtLevante.Enabled = txtAduana.Enabled = txtFecha.Enabled = txtTasaCambioI.Enabled = txtTasaCambio.Enabled = ddlEmbarque.Enabled = ddlPrefDoc.Enabled = false;

            //Gastos moneda extranjera
            tGE = DBFunctions.SingleData(
                "SELECT " +
                "SUM(DF.DFAC_VALORGASTO) " +
                "FROM DFACTURAGASTOEMBARQUE DF, PGASTODIRECTO PG " +
                "WHERE " +
                "PG.PGAS_CODIGO=DF.PGAS_CODIGO AND DF.MEMB_SECUENCIA=" + ddlEmbarque.SelectedValue + " AND " +
                "PG.PGAS_MODENACI='N';");
            if (tGE.Length > 0)
            {
                totalGastosE = Convert.ToDouble(tGE);
            }

            //Gastos moneda nacional
            tGN = DBFunctions.SingleData(
                "SELECT " +
                "SUM(DF.DFAC_VALORGASTO) " +
                "FROM DFACTURAGASTOEMBARQUE DF, PGASTODIRECTO PG " +
                "WHERE " +
                "PG.PGAS_CODIGO=DF.PGAS_CODIGO AND DF.MEMB_SECUENCIA=" + ddlEmbarque.SelectedValue + " AND " +
                "PG.PGAS_MODENACI='S';");
            if (tGN.Length > 0)
            {
                totalGastosN = Convert.ToDouble(tGN);
            }
            #endregion

            #region Validar Catalogos en embarque
            DataRow[] drVs;
            DataRow   drV;
            int       unidades = 0;
            for (int n = 0; n < dtVehiculos.Rows.Count; n++)
            {
                drV = dtVehiculos.Rows[n];
                if (Convert.ToInt16(drV["USAR"]) == 1)
                {
                    if (dsEmbarque.Tables[0].Select("PCAT_CODIGO='" + drV["PCAT_CODIGO"] + "'").Length == 0)
                    {
                        Utils.MostrarAlerta(Response, "El catálogo " + drV["PCAT_CODIGO"] + " no se encuentra en el embarque.");
                        return;
                    }

                    sqlStrings.Add("UPDATE DEMBARQUECKD SET DITE_CANTNACI=DITE_CANTNACI+1 " +
                                   "WHERE MEMB_SECUENCIA=" + ddlEmbarque.SelectedValue + " AND PCAT_CODIGO='" + drV["PCAT_CODIGO"] + "';");
                    unidades++;
                }
            }
            #endregion

            #region Validar total embarque
            //Detalles embarque totalCIF
            for (int n = 0; n < dsEmbarque.Tables[0].Rows.Count; n++)
            {
                drV               = dsEmbarque.Tables[0].Rows[n];
                valor             = Convert.ToDouble(drV["DITE_VALOFOB"]) * Convert.ToDouble(drV["DITE_CANTEMBA"]);
                unidadesEmbarque += Convert.ToDouble(drV["DITE_CANTEMBA"]);
                totalEmbarque    += valor;
            }

            totalEmbarqueM = Convert.ToDouble(DBFunctions.SingleData(
                                                  "SELECT MLIC_VALOEMBA FROM MEMBARQUE WHERE MEMB_SECUENCIA=" + ddlEmbarque.SelectedValue + ";"));

            if (Math.Abs(totalEmbarqueM - totalEmbarque) > (totalEmbarqueM / 100))
            {
                btEjecutar.Enabled = false;
                Utils.MostrarAlerta(Response, "La sumatoria de los detalles del embarque no coincide con el valor total del embarque!");
            }
            #endregion

            string ensamble = "";
            //Planta
            string planta = DBFunctions.SingleData("SELECT MPLA_CODIGO FROM MPLANTAS WHERE TPRO_CODIGO='E' FETCH FIRST 1 ROWS ONLY;");
            //CIF:
            double CIF = CosteoProduccion.TraerCIF(planta, DateTime.Now.Year, DateTime.Now.Month);
            //Horas laboradas al mes
            string horasMes = DBFunctions.SingleData("SELECT cnom_horaslabxmes from CNOMINA");
            //Carga Prestacional
            double cargaPrestacional = Convert.ToDouble(DBFunctions.SingleData("SELECT CNOM_PORCCARGPRES from CNOMINA"));
            //Costo hora planta
            double costoHoraPlanta = Convert.ToDouble(DBFunctions.SingleData("SELECT MPLA_COSTOHORA FROM MPLANTAS WHERE MPLA_CODIGO='" + planta + "';"));
            //Capacidad Planta
            double           capacidadPlanta = Convert.ToDouble(DBFunctions.SingleData("SELECT MPLA_CAPACIDAD FROM MPLANTAS WHERE MPLA_CODIGO='" + planta + "';"));
            CosteoProduccion costeo;
            string           numD = DBFunctions.SingleData("SELECT pdoc_ultidocu+1 FROM pdocumento WHERE pdoc_codigo='" + ddlPrefDoc.SelectedValue + "';");
            string           prfD = ddlPrefDoc.SelectedValue;
            double           cifV = 0, gravamenV = 0, ivaV = 0, gcifV = 0, costoUniV = 0, factorCIF = 0, factorImportacion = 0, totalCostoImportacion = 0, costeoV = 0;

            for (int n = 0; n < dtVehiculos.Rows.Count; n++)
            {
                drV = dtVehiculos.Rows[n];
                dtVehiculos.Rows[n]["IVA"] = 0;
                if (Convert.ToInt16(drV["USAR"]) == 1)
                {
                    drVs  = dsEmbarque.Tables[0].Select("PCAT_CODIGO='" + drV["PCAT_CODIGO"] + "'");
                    valor = Convert.ToDouble(drVs[0]["DITE_VALOFOB"]);
                    //Response.Write("<H1>"+drV["MCAT_VIN"]+"</H1><br>");
                    //Response.Write("fob: "+valor+"<br>");

                    cifV = totalEmbarque + totalGastosE;
                    //Response.Write("CIF: "+cifV+"<br>");
                    gravamenV = Convert.ToDouble(DBFunctions.SingleData(
                                                     "SELECT COALESCE(PA.PARA_GRAVAME,0) " +
                                                     "FROM PCATALOGOVEHICULO PC LEFT JOIN PARANCEL PA ON PA.PARA_CODIGO=PC.PARA_CODIGO " +
                                                     "WHERE PC.PCAT_CODIGO='" + drV["PCAT_CODIGO"] + "';"));
                    gravamenV = cifV * tasaCambioN * gravamenV / 100;
                    //Response.Write("GRAVAMEN: "+gravamenV+"<br>");
                    ivaV = Convert.ToDouble(DBFunctions.SingleData(
                                                "SELECT COALESCE(PA.PIVA_PORCIVA,0) " +
                                                "FROM PCATALOGOVEHICULO PC LEFT JOIN PARANCEL PA ON PA.PARA_CODIGO=PC.PARA_CODIGO " +
                                                "WHERE PC.PCAT_CODIGO='" + drV["PCAT_CODIGO"] + "';")) / 100;
                    ivaV += (cifV * tasaCambioN + gravamenV) * ivaV;
                    //Response.Write("IVA: "+ivaV+"<br>");
                    totalIVA += ivaV;
                    gcifV     = (cifV * tasaCambioI) + gravamenV + totalGastosN;
                    //Response.Write("GCIF: "+gcifV+"<br>");
                    costoUniV = (gcifV / totalEmbarque) * valor;
                    //Response.Write("Costo unitario: "+costoUniV+"<br>");
                    valor = costoUniV;


                    #region Costeo
                    ensamble = DBFunctions.SingleData(
                        "SELECT PENS_CODIGO FROM PENSAMBLEPRODUCCION WHERE PCAT_CODIGO='" + dtVehiculos.Rows[n]["PCAT_CODIGO"] + "';"
                        );
                    costeo = new CosteoProduccion(
                        dtVehiculos.Rows[n]["PCAT_CODIGO"].ToString(), 1, ensamble, TipoCosteo.Ensamble,
                        CIF, horasMes, costoHoraPlanta, capacidadPlanta, cargaPrestacional);
                    costeoV = costeo.Calcular();
                    valor  += costeoV;
                    //Response.Write("Costeo: "+costeoV+"<br>");
                    //Response.Write("TOTAL: "+valor+"<br><br><br>");
                    if (costeo.error.Length > 0)
                    {
                        Utils.MostrarAlerta(Response, "" + costeo.error + "");
                        return;
                    }

                    #endregion

                    sqlStrings.Add("UPDATE MVEHICULO SET MVEH_VALOCOMP=" + valor + " " +
                                   "where MCAT_VIN='" + drV["MCAT_VIN"] + "';");

                    factorCIF             = totalGastosE / totalEmbarque;
                    factorImportacion     = gcifV / totalEmbarque;
                    totalCostoImportacion = gcifV - (totalEmbarque * tasaCambioN);
                    subtotal += valor;
                    sqlStrings.Add(
                        "INSERT INTO DLIQUIDACIONCKD VALUES(" +
                        "DEFAULT," +
                        ddlEmbarque.SelectedValue + "," +
                        "'" + drV["PCAT_CODIGO"] + "','" + drV["MCAT_VIN"] + "'," +
                        totalEmbarque + "," + gcifV / unidadesEmbarque + "," + gravamenV / unidadesEmbarque + "," +
                        ivaV / unidadesEmbarque + "," + tasaCambioN + "," + tasaCambioI + "," + totalGastosE / unidadesEmbarque + "," +
                        totalGastosN / unidadesEmbarque + "," + factorCIF + "," +
                        factorImportacion + "," + totalCostoImportacion / unidadesEmbarque + "," +
                        "'" + HttpContext.Current.User.Identity.Name + "'," +
                        "'" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "');"
                        );
                    sqlStrings.Add("INSERT INTO DCOSTOPRODUCCION VALUES('" + prfD + "'," + numD + "," +
                                   costeo.totalMateriaPrima + "," + costeo.totalTrabajoTerceros + "," + costeo.totalManoObra + "," +
                                   costeo.totalCIF + "," + costeo.totalMaquinas + ",'" + drV["MCAT_VIN"] + "');");
                }
            }

            sqlStrings.Add("UPDATE pdocumento set pdoc_ultidocu=pdoc_ultidocu+1 " +
                           "WHERE pdoc_codigo='" + prfD + "';");

            totalIVA = unidades * (totalIVA / unidadesEmbarque);

            #region Factura Proveedor
            FacturaProveedor facturaRepuestos        = new FacturaProveedor();
            string           prefijoFacturaProveedor = ddlPrefDoc.SelectedValue;
            UInt64           numeroFacturaProveedor  = Convert.ToUInt64(lblNumDoc.Text.Trim());
            string           nit = DBFunctions.SingleData("SELECT MNIT_NIT FROM CEMPRESA;");
            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,
                                                                         prefijoFacturaProveedor, nit, planta, "F", numeroFacturaProveedor,
                                                                         numeroFacturaProveedor, "P", DateTime.Now,
                                                                         DateTime.Now, Convert.ToDateTime(null), DateTime.Now, 0,
                                                                         0, 0, 0, 0, txtLevante.Text,
                                                                         HttpContext.Current.User.Identity.Name.ToLower());

            facturaRepuestosProv.GrabarFacturaProveedor(false);

            ViewState["NUM_FAC"] = facturaRepuestosProv.NumeroFactura;
            ViewState["PRE_FAC"] = facturaRepuestosProv.PrefijoFactura;

            for (int i = 0; i < facturaRepuestosProv.SqlStrings.Count; i++)
            {
                sqlStrings.Insert(0, facturaRepuestosProv.SqlStrings[facturaRepuestosProv.SqlStrings.Count - i - 1].ToString());
            }
            #endregion Factura Proveedor


            txtTotalEmbarque.Text = totalEmbarque.ToString("C");
            txtTotalUnidades.Text = unidades.ToString("0");
            txtTotalGastosE.Text  = totalGastosE.ToString("C");
            txtTotalGastosN.Text  = totalGastosN.ToString("C");
            txtIVA.Text           = totalIVA.ToString("C");
            txtSubtotal.Text      = subtotal.ToString("C");
            txtTotal.Text         = (totalIVA + subtotal).ToString("C");

            ViewState["DLIQUIDACION"] = sqlStrings;
            ViewState["VEHICULOS"]    = dtVehiculos;
            btEjecutar.Enabled        = true;
            btnSeleccionar.Visible    = false;

            for (int n = 0; n < dgEnsambles.Items.Count; n++)
            {
                ((CheckBox)dgEnsambles.Items[n].FindControl("chkUsarE")).Enabled = false;
            }

            if (sqlStrings.Count == 0)
            {
                Utils.MostrarAlerta(Response, "No seleccionó vehículos.");
                return;
            }
        }
コード例 #4
0
        //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;
                }
            }
        }
コード例 #5
0
        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;
            }
        }
コード例 #6
0
        public bool Guardar_Factura()
        {
            bool             estado      = false;
            FacturaCliente   miFactura   = new FacturaCliente();
            FacturaProveedor miFacturaP  = new FacturaProveedor();
            ArrayList        sqlStrings  = new ArrayList();
            ArrayList        sqlOpcional = new ArrayList();
            int i;

            if (tipoFactura == "C")
            {
                miFactura = new FacturaCliente("FC", this.prefijoFactura, this.nit, this.almacen, "A", Convert.ToUInt32(this.numeroFactura), Convert.ToUInt32(diasPlazo), Convert.ToDateTime(this.fecha), Convert.ToDateTime(fechaVencimiento), Convert.ToDateTime(null), this.valorFactura, this.valorIva, this.valorFletes, this.valorIvaFletes, this.valorRete, this.costoFactura, this.centroCosto, this.observacion, this.vendedor, this.usuario, null);
                //							  0				1			2			3		4						5				  6					7							8											9					10				11				12					13				14				15					16				17				18			19
                //Activos Fijos
                if (tipoGasto == "1")
                {
                    for (i = 0; i < tablaDetallesFactura.Rows.Count; i++)
                    {
                        sqlStrings.Add("INSERT INTO dgastoactivocliente VALUES('@1',@2,1," + this.tablaDetallesFactura.Rows[i][0].ToString() + ",'" + this.tablaDetallesFactura.Rows[i][1].ToString() + "'," + Convert.ToDouble(this.tablaDetallesFactura.Rows[i][3].ToString().Substring(1)) + ")");
                        sqlStrings.Add("UPDATE mactivofijo SET tvig_vigencia='C' WHERE mafj_codiacti='" + tablaDetallesFactura.Rows[i][1].ToString() + "'");
                    }
                }
                //Gastos Diferidos
                else if (tipoGasto == "2")
                {
                    for (i = 0; i < tablaDetallesFactura.Rows.Count; i++)
                    {
                        sqlStrings.Add("INSERT INTO dgastodiferidocliente VALUES('@1',@2,2," + this.tablaDetallesFactura.Rows[i][0].ToString() + ",'" + this.tablaDetallesFactura.Rows[i][1].ToString() + "'," + Convert.ToDouble(this.tablaDetallesFactura.Rows[i][3].ToString().Substring(1)) + ")");
                    }
                }
                //Gastos Operativos
                else if (tipoGasto == "3")
                {
                    for (i = 0; i < tablaDetallesFactura.Rows.Count; i++)
                    {
                        if (this.tablaDetallesFactura.Rows[i][2].ToString() == "")
                        {
                            sqlStrings.Add("INSERT INTO dgastooperativocliente VALUES('@1',@2,3," + this.tablaDetallesFactura.Rows[i][0].ToString() + ",'" + this.tablaDetallesFactura.Rows[i][1].ToString() + "',null," + Convert.ToDouble(this.tablaDetallesFactura.Rows[i][3].ToString().Substring(1)) + "," + i + ")");
                        }
                        else
                        {
                            sqlStrings.Add("INSERT INTO dgastooperativocliente VALUES('@1',@2,3," + this.tablaDetallesFactura.Rows[i][0].ToString() + ",'" + this.tablaDetallesFactura.Rows[i][1].ToString() + "','" + this.tablaDetallesFactura.Rows[i][2].ToString() + "'," + Convert.ToDouble(this.tablaDetallesFactura.Rows[i][3].ToString().Substring(1)) + "," + i + ")");
                        }
                    }
                }
                //Gastos Varios
                else if (tipoGasto == "4")
                {
                    for (i = 0; i < tablaDetallesFactura.Rows.Count; i++)
                    {
                        //Si es debito y tiene valor base
                        if (((Convert.ToDouble(tablaDetallesFactura.Rows[i][7].ToString())) != 0) && ((Convert.ToDouble(tablaDetallesFactura.Rows[i][9].ToString())) != 0))
                        {
                            sqlStrings.Add("INSERT INTO dgastosvarioscliente VALUES('@1',@2," + i.ToString() + ",'" + tablaDetallesFactura.Rows[i][6].ToString().Trim() + "','" + tablaDetallesFactura.Rows[i][4].ToString().Trim() + "'," + System.Convert.ToInt32(tablaDetallesFactura.Rows[i][5].ToString().Trim()).ToString() + ",'" + tablaDetallesFactura.Rows[i][1].ToString().Trim() + "','" + tablaDetallesFactura.Rows[i][0].ToString().Trim() + "','" + tablaDetallesFactura.Rows[i][2].ToString().Trim() + "','" + tablaDetallesFactura.Rows[i][3].ToString().Trim() + "'," + System.Convert.ToDouble(tablaDetallesFactura.Rows[i][7].ToString()).ToString() + ",'D'," + System.Convert.ToDouble(tablaDetallesFactura.Rows[i][9].ToString()).ToString() + ")");
                        }
                        //Si es debito y no tiene valor base
                        else if (((System.Convert.ToDouble(tablaDetallesFactura.Rows[i][7].ToString())) != 0) && ((System.Convert.ToDouble(tablaDetallesFactura.Rows[i][9].ToString())) == 0))
                        {
                            sqlStrings.Add("INSERT INTO dgastosvarioscliente VALUES('@1',@2," + i.ToString() + ",'" + tablaDetallesFactura.Rows[i][6].ToString().Trim() + "','" + tablaDetallesFactura.Rows[i][4].ToString().Trim() + "'," + System.Convert.ToInt32(tablaDetallesFactura.Rows[i][5].ToString().Trim()).ToString() + ",'" + tablaDetallesFactura.Rows[i][1].ToString().Trim() + "','" + tablaDetallesFactura.Rows[i][0].ToString().Trim() + "','" + tablaDetallesFactura.Rows[i][2].ToString().Trim() + "','" + tablaDetallesFactura.Rows[i][3].ToString().Trim() + "'," + (System.Convert.ToDouble(tablaDetallesFactura.Rows[i][7].ToString())).ToString() + ",'D',0)");
                        }
                        //Si es credito y tiene valor base
                        else if (((System.Convert.ToDouble(tablaDetallesFactura.Rows[i][8].ToString())) != 0) && ((System.Convert.ToDouble(tablaDetallesFactura.Rows[i][9].ToString())) != 0))
                        {
                            sqlStrings.Add("INSERT INTO dgastosvarioscliente VALUES('@1',@2," + i.ToString() + ",'" + tablaDetallesFactura.Rows[i][6].ToString().Trim() + "','" + tablaDetallesFactura.Rows[i][4].ToString().Trim() + "'," + System.Convert.ToInt32(tablaDetallesFactura.Rows[i][5].ToString().Trim()).ToString() + ",'" + tablaDetallesFactura.Rows[i][1].ToString().Trim() + "','" + tablaDetallesFactura.Rows[i][0].ToString().Trim() + "','" + tablaDetallesFactura.Rows[i][2].ToString().Trim() + "','" + tablaDetallesFactura.Rows[i][3].ToString().Trim() + "'," + (System.Convert.ToDouble(tablaDetallesFactura.Rows[i][8].ToString())).ToString() + ",'C'," + System.Convert.ToDouble(tablaDetallesFactura.Rows[i][9].ToString()).ToString() + ")");
                        }
                        //Si es credito y no tiene valor base
                        else if (((System.Convert.ToDouble(tablaDetallesFactura.Rows[i][8].ToString())) != 0) && ((System.Convert.ToDouble(tablaDetallesFactura.Rows[i][9].ToString())) == 0))
                        {
                            sqlStrings.Add("INSERT INTO dgastosvarioscliente VALUES('@1',@2," + i.ToString() + ",'" + tablaDetallesFactura.Rows[i][6].ToString().Trim() + "','" + tablaDetallesFactura.Rows[i][4].ToString().Trim() + "'," + System.Convert.ToInt64(tablaDetallesFactura.Rows[i][5].ToString().Trim()).ToString() + ",'" + tablaDetallesFactura.Rows[i][1].ToString().Trim() + "','" + tablaDetallesFactura.Rows[i][0].ToString().Trim() + "','" + tablaDetallesFactura.Rows[i][2].ToString().Trim() + "','" + tablaDetallesFactura.Rows[i][3].ToString().Trim() + "'," + (System.Convert.ToDouble(tablaDetallesFactura.Rows[i][8].ToString())).ToString() + ",'C',0)");
                        }
                    }
                }
                //Activos Fijos
                else if (tipoGasto == "5")
                {
                    for (i = 0; i < tablaDetallesFactura.Rows.Count; i++)
                    {
                        sqlStrings.Add("INSERT INTO DACTIVOFIJOMEJORA VALUES('" + tablaDetallesFactura.Rows[i][1].ToString() + "'," + tablaDetallesFactura.Rows[i][3].ToString().Substring(1).Replace(",", "").Trim() + ",'" + observacion + "', '" + this.prefijoFactura + "', " + this.NumeroFactura + ", '" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "')");
                        sqlStrings.Add("UPDATE MACTIVOFIJO SET MAFJ_VALOMEJORA = " + tablaDetallesFactura.Rows[i][3].ToString().Substring(1).Replace(",", "").Trim() + " WHERE MAFJ_CODIACTI = '" + tablaDetallesFactura.Rows[i][1].ToString() + "'");
                    }
                }
                if (tablaRetenciones != null)
                {
                    if (tablaRetenciones.Rows.Count != 0)
                    {
                        for (i = 0; i < tablaRetenciones.Rows.Count; i++)
                        {
                            sqlStrings.Add("INSERT INTO mfacturaclienteretencion VALUES('@1',@2,'" + tablaRetenciones.Rows[i][0].ToString() + "'," + Convert.ToDouble(tablaRetenciones.Rows[i][3]).ToString() + "," + Convert.ToDouble(tablaRetenciones.Rows[i][2]).ToString() + ")");
                        }
                    }
                }
                if (tablaIva != null)
                {
                    if (tablaIva.Rows.Count != 0)
                    {
                        for (i = 0; i < tablaIva.Rows.Count; i++)
                        {
                            sqlStrings.Add("INSERT INTO dfacturaclienteiva VALUES('@1',@2," + tablaIva.Rows[i][0].ToString() + ",'" + tablaIva.Rows[i][3].ToString() + "','" + tablaIva.Rows[i][2].ToString() + "'," + tablaIva.Rows[i][1].ToString() + ")");
                        }
                    }
                }
                sqlStrings.Add("INSERT INTO mfacturaadministrativacliente VALUES('@1',@2,'" + cuenta + "')");
                miFactura.SqlRels = sqlStrings;
                if (miFactura.GrabarFacturaCliente(true))
                {
                    this.mensajes = miFactura.ProcessMsg;
                    estado        = true;
                }
                else
                {
                    this.mensajes = miFactura.ProcessMsg;
                }
            }
            else if (tipoFactura == "P")
            {
                miFacturaP = new FacturaProveedor("FP", prefijoFactura, prefijoProveedor, nit, almacen, "A", Convert.ToUInt64(numeroFactura), Convert.ToUInt64(numeroProveedor),
                                                  //								 0			1				2		  3		4	  5					6								7
                                                  "V", Convert.ToDateTime(fecha), Convert.ToDateTime(fechaVencimiento), Convert.ToDateTime(null), Convert.ToDateTime(fecha), valorFactura, valorIva,
                                                  //								8				9						10						11						12						13			14
                                                  valorFletes, valorIvaFletes, valorRete, observacion, usuario);
                //									15			16			 17			18		   19
                this.Sacar_Sqls(ref sqlStrings);
                // cuando el saldo de la factura sea 0, se pone la vigencia en C
                if (valorFactura + valorIva + valorFletes + valorIvaFletes - valorRete == 0)
                {
                    sqlStrings.Add("update MFACTURAPROVEEDOR SET TVIG_VIGENCIA = 'C' WHERE PDOC_CODIORDEPAGO = '@1' AND MFAC_NUMEORDEPAGO = @2 ");
                }
                //Activos Fijos
                if (tipoGasto == "1")
                {
                    for (i = 0; i < tablaDetallesFactura.Rows.Count; i++)
                    {
                        sqlStrings.Add("INSERT INTO dgastoactivoproveedor VALUES('@1',@2,1," + this.tablaDetallesFactura.Rows[i][0].ToString() + ",'" + this.tablaDetallesFactura.Rows[i][1].ToString() + "'," + Convert.ToDouble(tablaDetallesFactura.Rows[i][3].ToString().Substring(1)) + ")");
                    }
                }
                //Gastos Diferidos
                else if (tipoGasto == "2")
                {
                    for (i = 0; i < tablaDetallesFactura.Rows.Count; i++)
                    {
                        sqlStrings.Add("INSERT INTO dgastodiferidoproveedor VALUES('@1',@2,2," + this.tablaDetallesFactura.Rows[i][0].ToString() + ",'" + this.tablaDetallesFactura.Rows[i][1].ToString() + "'," + Convert.ToDouble(tablaDetallesFactura.Rows[i][3].ToString().Substring(1)) + ")");
                    }
                }
                //Gastos Operativos
                else if (tipoGasto == "3")
                {
                    for (i = 0; i < tablaDetallesFactura.Rows.Count; i++)
                    {
                        if (this.tablaDetallesFactura.Rows[i][2].ToString() == "")
                        {
                            sqlStrings.Add("INSERT INTO dgastooperativoproveedor VALUES('@1',@2,3," + this.tablaDetallesFactura.Rows[i][0].ToString() + ",'" + this.tablaDetallesFactura.Rows[i][1].ToString() + "',null," + Convert.ToDouble(tablaDetallesFactura.Rows[i][3].ToString().Substring(1)) + "," + i + ")");
                        }
                        else
                        {
                            sqlStrings.Add("INSERT INTO dgastooperativoproveedor VALUES('@1',@2,3," + this.tablaDetallesFactura.Rows[i][0].ToString() + ",'" + this.tablaDetallesFactura.Rows[i][1].ToString() + "','" + this.tablaDetallesFactura.Rows[i][2].ToString() + "'," + Convert.ToDouble(tablaDetallesFactura.Rows[i][3].ToString().Substring(1)) + "," + i + ")");
                        }
                    }
                }
                //Gastos Varios
                else if (tipoGasto == "4")
                {
                    for (i = 0; i < tablaDetallesFactura.Rows.Count; i++)
                    {
                        //Si es debito y tiene valor base
                        if (((Convert.ToDouble(tablaDetallesFactura.Rows[i][7].ToString())) != 0) && ((Convert.ToDouble(tablaDetallesFactura.Rows[i][9].ToString())) != 0))
                        {
                            sqlStrings.Add("INSERT INTO dgastosvariosproveedor VALUES('@1',@2," + i.ToString() + ",'" + tablaDetallesFactura.Rows[i][6].ToString().Trim() + "','" + tablaDetallesFactura.Rows[i][4].ToString().Trim() + "'," + System.Convert.ToUInt64(tablaDetallesFactura.Rows[i][5].ToString().Trim()).ToString() + ",'" + tablaDetallesFactura.Rows[i][1].ToString().Trim() + "','" + tablaDetallesFactura.Rows[i][0].ToString().Trim() + "','" + tablaDetallesFactura.Rows[i][2].ToString().Trim() + "','" + tablaDetallesFactura.Rows[i][3].ToString().Trim() + "'," + System.Convert.ToDouble(tablaDetallesFactura.Rows[i][7].ToString()).ToString() + ",'D'," + System.Convert.ToDouble(tablaDetallesFactura.Rows[i][9].ToString()).ToString() + ")");
                        }
                        //Si es debito y no tiene valor base
                        else if (((System.Convert.ToDouble(tablaDetallesFactura.Rows[i][7].ToString())) != 0) && ((System.Convert.ToDouble(tablaDetallesFactura.Rows[i][9].ToString())) == 0))
                        {
                            sqlStrings.Add("INSERT INTO dgastosvariosproveedor VALUES('@1',@2," + i.ToString() + ",'" + tablaDetallesFactura.Rows[i][6].ToString().Trim() + "','" + tablaDetallesFactura.Rows[i][4].ToString().Trim() + "'," + System.Convert.ToUInt64(tablaDetallesFactura.Rows[i][5].ToString().Trim()).ToString() + ",'" + tablaDetallesFactura.Rows[i][1].ToString().Trim() + "','" + tablaDetallesFactura.Rows[i][0].ToString().Trim() + "','" + tablaDetallesFactura.Rows[i][2].ToString().Trim() + "','" + tablaDetallesFactura.Rows[i][3].ToString().Trim() + "'," + (System.Convert.ToDouble(tablaDetallesFactura.Rows[i][7].ToString())).ToString() + ",'D',0)");
                        }
                        //Si es credito y tiene valor base
                        else if (((System.Convert.ToDouble(tablaDetallesFactura.Rows[i][8].ToString())) != 0) && ((System.Convert.ToDouble(tablaDetallesFactura.Rows[i][9].ToString())) != 0))
                        {
                            sqlStrings.Add("INSERT INTO dgastosvariosproveedor VALUES('@1',@2," + i.ToString() + ",'" + tablaDetallesFactura.Rows[i][6].ToString().Trim() + "','" + tablaDetallesFactura.Rows[i][4].ToString().Trim() + "'," + System.Convert.ToUInt64(tablaDetallesFactura.Rows[i][5].ToString().Trim()).ToString() + ",'" + tablaDetallesFactura.Rows[i][1].ToString().Trim() + "','" + tablaDetallesFactura.Rows[i][0].ToString().Trim() + "','" + tablaDetallesFactura.Rows[i][2].ToString().Trim() + "','" + tablaDetallesFactura.Rows[i][3].ToString().Trim() + "'," + (System.Convert.ToDouble(tablaDetallesFactura.Rows[i][8].ToString())).ToString() + ",'C'," + System.Convert.ToDouble(tablaDetallesFactura.Rows[i][9].ToString()).ToString() + ")");
                        }
                        //Si es credito y no tiene valor base
                        else if (((System.Convert.ToDouble(tablaDetallesFactura.Rows[i][8].ToString())) != 0) && ((System.Convert.ToDouble(tablaDetallesFactura.Rows[i][9].ToString())) == 0))
                        {
                            sqlStrings.Add("INSERT INTO dgastosvariosproveedor VALUES('@1',@2," + i.ToString() + ",'" + tablaDetallesFactura.Rows[i][6].ToString().Trim() + "','" + tablaDetallesFactura.Rows[i][4].ToString().Trim() + "'," + System.Convert.ToUInt64(tablaDetallesFactura.Rows[i][5].ToString().Trim()).ToString() + ",'" + tablaDetallesFactura.Rows[i][1].ToString().Trim() + "','" + tablaDetallesFactura.Rows[i][0].ToString().Trim() + "','" + tablaDetallesFactura.Rows[i][2].ToString().Trim() + "','" + tablaDetallesFactura.Rows[i][3].ToString().Trim() + "'," + (System.Convert.ToDouble(tablaDetallesFactura.Rows[i][8].ToString())).ToString() + ",'C',0)");
                        }
                    }
                }
                //Activos Fijos
                else if (tipoGasto == "5")
                {
                    for (i = 0; i < tablaDetallesFactura.Rows.Count; i++)
                    {
                        sqlStrings.Add("INSERT INTO DACTIVOFIJOMEJORA VALUES('" + tablaDetallesFactura.Rows[i][1].ToString() + "'," + tablaDetallesFactura.Rows[i][3].ToString().Substring(1).Replace(",", "").Trim() + ",'" + observacion + "', '" + this.prefijoFactura + "', " + this.NumeroFactura + ", '" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "')");
                        sqlStrings.Add("UPDATE MACTIVOFIJO SET MAFJ_VALOMEJORA = " + tablaDetallesFactura.Rows[i][3].ToString().Substring(1).Replace(",", "").Trim() + " WHERE MAFJ_CODIACTI = '" + tablaDetallesFactura.Rows[i][1].ToString() + "'");
                    }
                }
                if (tablaRetenciones != null)
                {
                    if (tablaRetenciones.Rows.Count != 0)
                    {
                        for (i = 0; i < tablaRetenciones.Rows.Count; i++)
                        {
                            sqlStrings.Add("INSERT INTO mfacturaproveedorretencion VALUES('@1',@2,'" + tablaRetenciones.Rows[i][0].ToString() + "'," + Convert.ToDouble(tablaRetenciones.Rows[i][3]).ToString() + "," + Convert.ToDouble(tablaRetenciones.Rows[i][2]).ToString() + ")");
                        }
                    }
                }
                if (tablaIva != null)
                {
                    if (tablaIva.Rows.Count != 0)
                    {
                        for (i = 0; i < tablaIva.Rows.Count; i++)
                        {
                            sqlStrings.Add("INSERT INTO dfacturaproveedoriva VALUES('@1',@2," + tablaIva.Rows[i][0].ToString() + ",'" + tablaIva.Rows[i][3].ToString() + "','" + tablaIva.Rows[i][2].ToString() + "'," + tablaIva.Rows[i][1].ToString() + ")");
                        }
                    }
                }
                sqlStrings.Add("INSERT INTO mfacturaadministrativaproveedor VALUES('@1',@2,'" + cuenta + "')");

                miFacturaP.SqlRels = sqlStrings;
                if (miFacturaP.GrabarFacturaProveedor(true))
                {
                    //Este proceso aplica solamente para EUROTECK y cancela la factua en finanzas sin generar comprobantes de egreso cuando usan la cuenta 1330
                    if (DBFunctions.SingleData("SELECT MNIT_NIT FROM CEMPRESA") == "901087944" && cuenta.ToString().Substring(0, 4) == "1330")
                    {
                        sqlOpcional.Add("update MFACTURAPROVEEDOR set MFAC_VALOABON = MFAC_VALOFACT + MFAC_VALOIVA + MFAC_VALOFLET + MFAC_VALOIVAFLET - MFAC_VALORETE, TVIG_VIGENCIA = 'C' where PDOC_CODIORDEPAGO = '" + prefijoFactura + "' and MFAC_NUMEORDEPAGO = " + Convert.ToUInt64(numeroFactura) + "");
                        if (DBFunctions.Transaction(sqlStrings))
                        {
                            string processMsg = DBFunctions.exceptions;
                        }
                    }
                    estado        = true;
                    this.mensajes = miFacturaP.ProcessMsg;
                }
                else
                {
                    this.mensajes = "Error : " + miFacturaP.ProcessMsg;
                }
            }
            return(estado);
        }
コード例 #7
0
        //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);
        }
コード例 #8
0
        Realizar_Recepcion(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)
            {
                observacion += " " + tbInformacionTecnica.Rows.Count;
                //Construir Observacion Catalogo+Vin
                for (i = 0; i < tbInformacionTecnica.Rows.Count; i++)
                {
                    observacion += " " + tbInformacionTecnica.Rows[i][0].ToString() + "-" + tbInformacionTecnica.Rows[i][1].ToString() + " ";
                }

                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.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(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);
                }
                else
                {
                    RetencionVehiculos.Guardar_Retenciones(false, dtRetenciones);
                }
                for (i = 0; i < RetencionVehiculos.Sqls.Count; i++)
                {
                    sqlStrings.Add(RetencionVehiculos.Sqls[i].ToString());
                }
            }

            //Primero debemos grabar los registros de la tabla mcatalogovehiculo
            for (i = 0; i < tbInformacionTecnica.Rows.Count; i++)
            {
                //observacion += "<br/>SELECT * FROM mcatalogovehiculo WHERE mcat_vin='"+tbInformacionTecnica.Rows[i][1].ToString()+"'<br/>";
                string fechaVenta = DateTime.Now.ToString("yyyy-MM-dd");
                if (tbInformacionComercial.Rows[i][7].ToString() == "U") // En vehículo usado de toma la fecha de matriculo inicial en la fecha de venta
                {
                    fechaVenta = tbInformacionComercial.Rows[i][9].ToString();
                }
                if (!DBFunctions.RecordExist("SELECT * FROM mcatalogovehiculo WHERE mcat_vin='" + tbInformacionTecnica.Rows[i][1].ToString() + "' "))
                {
                    sqlStrings.Add("INSERT INTO mcatalogovehiculo VALUES('" + tbInformacionTecnica.Rows[i][0].ToString() + "','" + tbInformacionTecnica.Rows[i][1].ToString() + "','" + tbInformacionTecnica.Rows[i][8].ToString() + "','" + tbInformacionTecnica.Rows[i][2].ToString() + "','" + DBFunctions.SingleData("SELECT mnit_nit FROM cempresa") + "','" + tbInformacionTecnica.Rows[i][3].ToString() + "','" + tbInformacionTecnica.Rows[i][4].ToString() + "','" + tbInformacionTecnica.Rows[i][5].ToString() + "'," + tbInformacionTecnica.Rows[i][6].ToString() + ",'" + tbInformacionTecnica.Rows[i][7].ToString() + "',null,null,'" + fechaVenta + "',0,null,0,1000,null,null,'" + DateTime.Now.ToString("yyyy-MM-dd") + "',null)");
                }
            }
            //Ahora Agregamos los registros de la tabla mvehiculo
            for (i = 0; i < tbInformacionComercial.Rows.Count; i++)
            {
                string nitPropietario = DBFunctions.SingleData("SELECT mnit_nit FROM cempresa");
                if (tbInformacionComercial.Rows[i][13].ToString() != "P")
                {
                    nitPropietario = nitProveedor;  // En las Consignaciones o Retomas de Vehiculos, se deja el nit del proveedor como propietario
                }
                if (!factura)
                {
                    if (valorIva == null)
                    {
                        valorIva = "0";
                    }
                    if ((prefijoPedido == "" && numeroPedido == "") || indicativoRetoma == "S")
                    {
                        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(" + tbInformacionComercial.Rows[i][0].ToString() + ",null,'" + tbInformacionComercial.Rows[i][2].ToString() + "',10,null,null,'" + 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() + "',null,null," + tbInformacionComercial.Rows[i][14].ToString() + ",null,'" + nitSeleccionado + "',null," + valorIva + ")");
                    }
                    //sqlStrings.Add("INSERT INTO mvehiculo VALUES(" + tbInformacionComercial.Rows[i][0].ToString() + ",null,'" + tbInformacionComercial.Rows[i][2].ToString() + "',10,null,null,'" + 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() + "',null,null," + tbInformacionComercial.Rows[i][14].ToString() + ",null,'" + nitProveedor + "',null," + valorIva + ")");
                    else
                    {
                        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(" + tbInformacionComercial.Rows[i][0].ToString() + ",null,'" + tbInformacionComercial.Rows[i][2].ToString() + "',10,'" + 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() + "',null,null," + tbInformacionComercial.Rows[i][14].ToString() + ",null,'" + nitSeleccionado + "',null," + valorIva + ")");
                        //sqlStrings.Add("INSERT INTO mvehiculo VALUES(" + tbInformacionComercial.Rows[i][0].ToString() + ",null,'" + tbInformacionComercial.Rows[i][2].ToString() + "',10,'" + 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() + "',null,null," + 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='" + tbInformacionComercial.Rows[i][1].ToString() + "'");
                    }
                    //Ahora creamos el registro en la tabla mubicacionvehiculo
                    sqlStrings.Add("INSERT INTO mubicacionvehiculo VALUES(default,'" + tbInformacionComercial.Rows[i][1].ToString() + "','" + tbInformacionComercial.Rows[i][2].ToString() + "','" + this.ubicacion + "','" + DateTime.Now.ToString("yyyy-MM-dd") + "',null,null,null,null)");
                }
                else
                {
                    if ((prefijoPedido == "" && numeroPedido == "") || indicativoRetoma == "S")
                    {
                        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(" + tbInformacionComercial.Rows[i][0].ToString() + ",null,'" + tbInformacionComercial.Rows[i][2].ToString() + "',20,null,null,'" + 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,'" + nitSeleccionado + "',null," + valorIva + ")");
                    }
                    //sqlStrings.Add("INSERT INTO mvehiculo VALUES(" + tbInformacionComercial.Rows[i][0].ToString() + ",null,'" + tbInformacionComercial.Rows[i][2].ToString() + "',20,null,null,'" + 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 + ")");
                    else
                    {
                        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(" + 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,'" + 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='" + tbInformacionComercial.Rows[i][1].ToString() + "'");
                    }
                    //Ahora creamos el registro en la tabla mubicacionvehiculo
                    sqlStrings.Add("INSERT INTO mubicacionvehiculo VALUES(default,'" + tbInformacionComercial.Rows[i][1].ToString() + "','" + tbInformacionComercial.Rows[i][2].ToString() + "','" + this.ubicacion + "','" + DateTime.Now.ToString("yyyy-MM-dd") + "',null,null,null,null)");
                }
            }
            if (indicativoRetoma == "S")
            {
                for (i = 0; i < tbInformacionTecnica.Rows.Count; i++)
                {
                    sqlStrings.Add("UPDATE dpedidovehiculoretoma SET mveh_inventario=" + tbInformacionComercial.Rows[i][0].ToString() + " WHERE pcat_codigo='" + tbInformacionTecnica.Rows[i][0].ToString() + "' AND dped_numeplaca='" + tbInformacionTecnica.Rows[i][8].ToString() + "'");
                }
            }
            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);
        }