コード例 #1
0
        private void cargar_grilla_actualpacking()
        {
            DataTable dt = Dat_Venta.leer_articulopacking_paquete(_liq_id, _paq_id);

            dg1.ItemsSource = dt.DefaultView;
            calculartotal();
        }
コード例 #2
0
        private async void consultar()
        {
            Mouse.OverrideCursor = Cursors.Wait;
            var metroWindow = this;

            metroWindow.MetroDialogOptions.ColorScheme = MetroDialogOptions.ColorScheme;
            try
            {
                Boolean _tipo = chkactivar.IsChecked.Value;

                if (_tipo)
                {
                    if (txtdoc.Text.Length == 0)
                    {
                        await metroWindow.ShowMessageAsync(Ent_Msg.msginfomacion, "Por favor ingrese el numero de documento a consultar", MessageDialogStyle.Affirmative, metroWindow.MetroDialogOptions);

                        Mouse.OverrideCursor = null;
                        txtdoc.Focus();
                        return;
                    }
                }

                DateTime _fechaini = Convert.ToDateTime(dtpdesde.Text);
                DateTime _fechafin = Convert.ToDateTime(dtphasta.Text);
                string   _doc      = txtdoc.Text;
                dt = Dat_Venta.dt_consulta_pedido(_tipo, _fechaini, _fechafin, _doc);
                dg1.ItemsSource = dt.DefaultView;
            }
            catch (Exception exc)
            {
                MessageBox.Show(exc.Message, Ent_Msg.msginfomacion, MessageBoxButton.OK, MessageBoxImage.Error);
            }
            Mouse.OverrideCursor = null;
        }
コード例 #3
0
        private void cargar_grilla_packing()
        {
            DataTable dt = Dat_Venta.leerarticulopaqliq(_liq_id);

            dg3.ItemsSource = dt.DefaultView;
            calculartotal();
        }
コード例 #4
0
        private void dispatcherTimerAQ_Tick(object sender, EventArgs e)
        {
            #region <FACTURACION ELECTRONICA>
            Dat_FE        dat_fe   = new Dat_FE();
            List <Ent_FE> listarFE = dat_fe.get_doc_fe_error();

            if (listarFE != null)
            {
                foreach (var fila in listarFE)
                {
                    string cod_hash = ""; string _error = ""; String _url_pdf = "";
                    Facturacion_Electronica.ejecutar_factura_electronica(fila.tipo, (fila.tipo == "N") ? fila.not_id : fila.numero, ref cod_hash, ref _error, ref _url_pdf);

                    if (_error.Length == 0)
                    {
                        if (fila.tipo == "B")
                        {
                            Dat_Venta.insertar_codigo_hash(fila.numero, cod_hash, "V", _url_pdf);
                        }
                        else
                        {
                            Dat_Venta.insertar_codigo_hash(fila.not_id, cod_hash, "N", _url_pdf);
                        }
                    }
                    else
                    {
                        dat_fe.update_error_FE(_error);
                    }
                }
                Bll.Basico._enviar_webservice_xml();
            }

            #endregion
        }
コード例 #5
0
        public void LoadDataInvoiceReport()
        {
            DataSet dsLiqInfo = Dat_Venta.getLiquidationHdrInfo(_noLiq);

            if (dsLiqInfo == null || dsLiqInfo.Tables[0].Rows.Count == 0)
            {
                return;
            }

            DataSet dsLiqDtl = Dat_Venta.getDtlPicking(_noLiq);

            if (dsLiqDtl == null || dsLiqDtl.Tables[0].Rows.Count == 0)
            {
                return;
            }

            DataRow dRow = dsLiqInfo.Tables[0].Rows[0];

            foreach (DataRow dRowDtl in dsLiqDtl.Tables[0].Rows)
            {
                Integrado.Sistemas.Control.Liquidation objPickReport = new Integrado.Sistemas.Control.Liquidation("", dRow["almacen"].ToString(),
                                                                                                                  dRow["alm_direccion"].ToString(), dRow["Alm_Telefono"].ToString(), "", dRow["Bas_Id"].ToString(),
                                                                                                                  dRow["Bas_Documento"].ToString(), dRow["nombres"].ToString(), dRow["Bas_Direccion"].ToString(), dRow["Bas_Telefono"].ToString(),
                                                                                                                  dRow["Bas_Celular"].ToString(), dRow["Bas_Correo"].ToString(), dRow["ubicacion"].ToString(), dRow["Liq_Id"].ToString(),
                                                                                                                  dRow["estado"].ToString(), dRowDtl["tdv_article"].ToString(), dRowDtl["brv_description"].ToString(),
                                                                                                                  string.Empty, dRowDtl["arv_name"].ToString(), dRowDtl["tdv_size"].ToString(), Convert.ToDecimal(dRowDtl["tdn_qty"]), dRowDtl["stv_descriptions"].ToString(),
                                                                                                                  dRowDtl["po"].ToString(), _empPick, dRowDtl["instrucciones"].ToString(), dRow["lider"].ToString());

                _invoiceData.Add(objPickReport);
            }
        }
コード例 #6
0
        private async void consultar()
        {
            Mouse.OverrideCursor = Cursors.Wait;
            var metroWindow = this;
            int _pendiente  = 1;

            metroWindow.MetroDialogOptions.ColorScheme = MetroDialogOptions.ColorScheme;
            txtSecuenciaGuia.Text = Dat_ConfigGuia.guiasecuencia();
            try
            {
                Boolean _tipo = chkactivar.IsChecked.Value;

                if (chkPendientes.IsChecked.Value)
                {
                    _pendiente = 0;
                }
                else
                {
                    _pendiente = 1;
                }

                if (_tipo)
                {
                    if (txtdoc.Text.Length == 0)
                    {
                        await metroWindow.ShowMessageAsync(Ent_Msg.msginfomacion, "Por favor ingrese el numero de documento a consultar", MessageDialogStyle.Affirmative, metroWindow.MetroDialogOptions);

                        Mouse.OverrideCursor = null;
                        txtdoc.Focus();
                        return;
                    }
                }

                DateTime  _fechaini = Convert.ToDateTime(dtpdesde.Text);
                DateTime  _fechafin = Convert.ToDateTime(dtphasta.Text);
                DataTable dt2       = new DataTable();

                string _doc = txtdoc.Text;
                dt = Dat_Venta.dt_VTEX_consulta_pedido_urbano(_tipo, _fechaini, _fechafin, _doc, _pendiente);
                //DataRow[] foundRows;
                //foundRows = dt.Select("Ven_DET_GuiUrb_Envio=true");


                dg1.ItemsSource = dt.DefaultView;
                //dg1.ItemsSource = foundRows;


                lblTotal.Content = "Total: " + dt.Rows.Count + " Reg.";
            }
            catch (Exception exc)
            {
                MessageBox.Show(exc.Message, Ent_Msg.msginfomacion, MessageBoxButton.OK, MessageBoxImage.Error);
            }
            Mouse.OverrideCursor = null;
        }
コード例 #7
0
 private void btnbuscar_Click(object sender, RoutedEventArgs e)
 {
     Mouse.OverrideCursor = Cursors.Wait;
     if (chkbarra.IsChecked.Value)
     {
         txtarticulo_KeyDown(btnbuscar, new KeyEventArgs(Keyboard.PrimaryDevice, Keyboard.PrimaryDevice.ActiveSource, 0, (Key.Enter)));
     }
     else
     {
         dg2.ItemsSource = Dat_Venta.Datos_art_tallaemp(_liq_id, txtarticulo.Text).DefaultView;
     }
     Mouse.OverrideCursor = null;
 }
コード例 #8
0
 private void btnToken_Click(object sender, RoutedEventArgs e)
 {
     if (valida_guia() != 0)
     {
         DataTable dtFlag = new DataTable();
         dtFlag = Dat_Venta.valida_token_reimpresion(1, "", txtnumero.Text); //generar clave token para reimprimir
         if (Convert.ToInt32(dtFlag.Rows[0][0]) == 1)
         {
             MessageBox.Show("Se envío una clave token al correo del Administrador.", Ent_Msg.msginfomacion, MessageBoxButton.OK, MessageBoxImage.Information);
             txtToken.Focus();
         }
     }
     else
     {
         MessageBox.Show("El comprobante no es válido para generar una clave token", Ent_Msg.msginfomacion, MessageBoxButton.OK, MessageBoxImage.Error);
         txtnumero.Focus();
     }
 }
コード例 #9
0
        private void dispatcherTimerE_Tick(object sender, EventArgs e)
        {
            #region <ACTUALIZAR EL ESTADO DE PRESTASHOP>
            //UpdaEstado updpresta = new UpdaEstado();
            //updpresta.updateestadofac_presta();
            #endregion

            #region <ENVIO DATA URBANO>
            //EnviaPedido envia = new EnviaPedido();
            //envia.sendUrbano();
            //envia.send();
            #endregion
            #region <FACTURACION ELECTRONICA>
            Dat_FE        dat_fe   = new Dat_FE();
            List <Ent_FE> listarFE = dat_fe.get_doc_fe_error();

            if (listarFE != null)
            {
                foreach (var fila in listarFE)
                {
                    string cod_hash = ""; string _error = ""; String _url_pdf = "";
                    Facturacion_Electronica.ejecutar_factura_electronica(fila.tipo, (fila.tipo == "N")? fila.not_id: fila.numero, ref cod_hash, ref _error, ref _url_pdf);

                    if (_error.Length == 0)
                    {
                        if (fila.tipo == "B")
                        {
                            Dat_Venta.insertar_codigo_hash(fila.numero, cod_hash, "V", _url_pdf);
                        }
                        else
                        {
                            Dat_Venta.insertar_codigo_hash(fila.not_id, cod_hash, "N", _url_pdf);
                        }
                    }
                    else
                    {
                        dat_fe.update_error_FE(_error);
                    }
                }
                Bll.Basico._enviar_webservice_xml();
            }

            #endregion
        }
コード例 #10
0
        //public static string GenerarTicketFact(string noInv, int varOrigina_Copia, string _codigo_hash)
        //{
        //    //string noInv = textBox1.Text;
        //    try
        //    {

        //        //Metodo que realiza la facturación, realiza el empaquetamiento, ingresa los pagos y registra la factura.
        //        string DirRaiz = Directory.GetCurrentDirectory();
        //        string strFilePath = string.Empty;
        //        int iRecLineChars = 36;//Tamaño o ancho del papel para la impresion, lo inicializo en 50.


        //        //AppSettingsReader lector = new AppSettingsReader();


        //        ////ConfigurationManager.AppSettings[""
        //        //string d = "";
        //        //d = (string)lector.GetValue("kdirlogoInvoce",typeof(string));
        //        //d = ConfigurationManager.ConnectionStrings["kdirlogoInvoce"].ConnectionString;


        //        strFilePath = DirRaiz + Global.kdirlogoInvoce;
        //        string varSerieFactura = Global.kSeriePosBoleta;
        //        string varSerieBoleta = Global.kSeriePosBoleta;
        //        string varConceptoVisaUnica = Global.kPosConcepts_VISA_UNICA;
        //        //ConfigurationManager.AppSettings[


        //        //ServiceVentas.VentasClient client = new ServiceVentas.VentasClient();
        //        //ObservableCollection<string> obsCadenaImpresion = new ObservableCollection<string>();
        //        string[] obsCadenaImpresion;

        //        // string varDocumentTypeID = client.getDocumentTypeID()

        //        //// arma la cadena,
        //        ////ACA ME VOY A wcf EN ADA.bl/facade/controlers/ventas/CONTROLINVOICE.CS
        //        obsCadenaImpresion = getAllInvoice(Global.kCompany, noInv,
        //        string.Empty, "", _myCIintl, iRecLineChars, Global.KCountDecimal,
        //        varSerieFactura, varSerieBoleta, varConceptoVisaUnica, _codigo_hash);


        //        // es para enviar a la ticketera o a la ticketera_Factura
        //        bool strDocumentTypeID = obsCadenaImpresion[0].Contains("R.U.C.");
        //        if (strDocumentTypeID)
        //        {
        //            //ticketera Factura
        //            string varFactura = Global.kPosImpresoraFactura;
        //            _printer = _posprinter.GetReceiptPrinter(varFactura);  // prepara la impresora
        //            _posprinter.ConnectToPrinter(_printer);   // inicializa cin el getExplorer
        //            iRecLineChars = _printer.RecLineChars;//Tamaño o ancho del papel para la impresion.
        //        }
        //        else
        //        {
        //            //ticketera boleta
        //            string varBoleta = Global.kPosImpresora;
        //            _printer = _posprinter.GetReceiptPrinter(varBoleta);  // prepara la impresora
        //            _posprinter.ConnectToPrinter(_printer);   // inicializa cin el getExplorer
        //            iRecLineChars = _printer.RecLineChars;//Tamaño o ancho del papel para la impresion.
        //        }

        //        ////ticketera boleta esta al comienzo y solo se enviaba a una Ticketera
        //        //_printer = _posprinter.GetReceiptPrinter();  // prepara la impresora
        //        //_posprinter.ConnectToPrinter(_printer);   // inicializa cin el getExplorer
        //        //iRecLineChars = _printer.RecLineChars;//Tamaño o ancho del papel para la impresion.

        //        ///// _posprinter.PrintContent(_printer, obsCadenaImpresion[0].Replace("@@", ""));  // manda a imprimir

        //        //// esta es paara q salgan las copias
        //        //_posprinter.PrintContent(_printer, obsCadenaImpresion[0].Replace("@@", "*** COPIA ***"));  // manda a imprimir con copia

        //        // si es uno Es tiket Original, si es 0 es Ticket copia
        //        if (varOrigina_Copia == 1)
        //        {
        //            _posprinter.PrintContent(_printer, obsCadenaImpresion[0].Replace("@@", ""));
        //        }
        //        else
        //        {
        //            _posprinter.PrintContent(_printer, obsCadenaImpresion[0].Replace("@@", "*** COPIA ***"));  // manda a imprimir con copia
        //        }

        //        ////Duplicado de factura
        //        ////Corto el papel de la primera

        //        _posprinter.DisconnectFromPrinter(_printer); //CIERRA EL EXPLORADOR POS

        //        //_printer.Close();

        //        //_posprinterFactura.DisconnectFromPrinter(_printerFactura); //CIERRA EL EXPLORADOR POS

        //        return "Correcto";


        //    }
        //    catch (PosControlException errPosCotrl)
        //    {
        //        //bsyIndicadorPay.IsBusy = false;
        //        //lblMsg.Content = errPosCotrl.Message;
        //        _posprinter.ClearExclusiveAccess(_printer);
        //        return null;
        //    }
        //    catch (PosLibraryException errPosLib)
        //    {
        //        //bsyIndicadorPay.IsBusy = false;
        //        //lblMsg.Content = errPosLib.Message;
        //        _posprinter.ClearExclusiveAccess(_printer);
        //        return null;
        //    }
        //    catch (PosException errPos)
        //    {
        //        // bsyIndicadorPay.IsBusy = false;
        //        //lblMsg.Content = errPos.Message;
        //        _posprinter.ClearExclusiveAccess(_printer);
        //        return null;
        //    }
        //    catch (Exception ex)
        //    {
        //        //bsyIndicadorPay.IsBusy = false;
        //        //lblMsg.Content = ex.Message;
        //        _posprinter.ClearExclusiveAccess(_printer);
        //        return null;
        //    }
        //    finally
        //    {
        //        //bsyIndicadorPay.IsBusy = false;
        //    }
        //}



        public static string[] getAllInvoice(string strCompany, string strInvoice, string strLiquidation, string strFile, CultureInfo myCulture
                                             , int iRecLineChars, string strDec, string StrSerieFactura, string StrSerieBoleta, string StrConceptoVisaUnica, string _codigo_hash)
        {
            //DataSet ds = new DataSet();
            //_invoice = new DALInvoice();
            //ds = getAllInvoice(strCompany, strInvoice, strLiquidation);
            //string[] strPrint = new string[2];
            DataSet ds = Dat_Venta.leer_venta_tk(strInvoice);

            string[] strPrint = new string[1];

            strPrint[0] = getPosPrinter(ds, strFile, myCulture, iRecLineChars, strDec, "O", StrSerieFactura, StrSerieBoleta, StrConceptoVisaUnica, _codigo_hash);

            //strPrint[0] = "Impresion aquarella";

            _strInvoicePrint = ""; //Limpio cadena de impresion para generar la copia.
            //strPrint[1] = getPosPrinter(ds, strFile, myCulture, iRecLineChars, strDec,"C");//Original
            return(strPrint);      // devuelve la cadena llena a  ImpresionPrueba.axml
        }
コード例 #11
0
        public static void FE_QR(string _tipo_doc, string _num_doc, ref Byte[] img_qr, ref string _error)
        {
            string _formato_doc = "";

            try
            {
                _formato_doc = Dat_Venta._leer_formato_electronico(_tipo_doc, _num_doc, ref _error);
                GeneratorCdp generatorCdp = new GeneratorCdp();
                if (_tipo_doc == "B" || _tipo_doc == "F")
                {
                    img_qr = generatorCdp.GetImageQrCodeForInvoiceCdp(_formato_doc);
                }
                else
                {
                    img_qr = generatorCdp.GetImageQrCodeForNoteCdp(_formato_doc);
                }
            }
            catch (Exception exc)
            {
                _error = exc.Message;
            }
        }
コード例 #12
0
        public void ImpresionD(string VenId, string TiendaId)
        {
            try
            {
                _invoiceData        = new ArrayList();
                _invoiceDataSummary = new ArrayList();
                //String varNumGuia = _invHdrVM.updateNumeroGuia(_co, _idv_invoice, _user._usn_pon_pos_id);
                LoadDataInvoiceReport(VenId, TiendaId);
                LoadDataInvoiceReport_Summary();
                ReportGuiaRem report = new ReportGuiaRem();

                report.Database.Tables[0].SetDataSource(_invoiceData);
                report.Database.Tables[1].SetDataSource(_invoiceDataSummary);

                //IMPRESION DIRECTA
                report.PrintToPrinter(1, false, 0, 0);
                Dat_Venta.valida_token_reimpresion(2, "", ""); //actualiza el flag del ultimo token
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error en la generacion del reporte, detalle :" + ex.Message.ToString(), Ent_Msg.msginfomacion, MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
コード例 #13
0
        private async void btneliminar_Click(object sender, RoutedEventArgs e)
        {
            if (!(txtarticulo.IsEnabled))
            {
                return;
            }

            DataRowView row = (DataRowView)((Button)e.Source).DataContext;

            string articulo = (string)row["Art_Id"].ToString();
            string marca    = (string)row["Mar_Descripcion"].ToString();
            string talla    = (string)row["Liq_Det_TalId"].ToString();

            var mySettings = new MetroDialogSettings()
            {
                AffirmativeButtonText = "Si",
                NegativeButtonText    = "No",
                //FirstAuxiliaryButtonText = "Cancelar",
                ColorScheme = MetroDialogOptions.ColorScheme,
            };

            MessageDialogResult result = await this.ShowMessageAsync(Ent_Msg.msginfomacion, "¿Realmente desea eliminar el artículo : " + articulo + " en marca : " +
                                                                     marca + "?",
                                                                     MessageDialogStyle.AffirmativeAndNegative, mySettings);

            String msge = " > El artículo : " + articulo + " en marca : " + marca + " ha sido eliminado.";

            if (result == MessageDialogResult.Affirmative)
            {
                string respuesta = Dat_Venta.borrar_lineapaquete(_paq_id, articulo, talla);
                if (respuesta.Equals("1"))
                {
                    cargar_grilla();
                }
                lblmensaje.Content = msge;
            }
        }
コード例 #14
0
        private void determina_paquete()
        {
            Mouse.OverrideCursor = Cursors.Wait;
            try
            {
                _paq_id = Dat_Venta.insertar_leer_paquete(_liq_id);

                if (_paq_id == -2)
                {
                    txtarticulo.IsEnabled = false;
                    btnpaquete.IsEnabled  = false;
                    btnbuscar.IsEnabled   = false;
                }


                _paq_no             = Dat_Venta.leer_maxnopaqliq(_liq_id);
                lblnpaquete.Content = _paq_no.ToString();
            }
            catch (Exception exc)
            {
                MessageBox.Show(exc.Message, Ent_Msg.msginfomacion, MessageBoxButton.OK, MessageBoxImage.Error);
            }
            Mouse.OverrideCursor = null;
        }
コード例 #15
0
 private Int32 valida_pedido(string id)
 {
     return(Dat_Venta.valida_pedido(id));
 }
コード例 #16
0
        public static string Generar_Impresion(string _tipo, string _numero_doc)
        {
            try
            {
                #region <IMPRESION DE FACTURAS Y BOLETAS>
                if (_tipo == "F" || _tipo == "B")
                {
                    DataSet ds = Dat_Venta.leer_venta_tk(_numero_doc);
                    if (ds != null)
                    {
                        DataTable dt = ds.Tables[0];

                        if (dt != null)
                        {
                            if (dt.Rows.Count > 0)
                            {
                                #region <VARIABLES DE EMPRESA TICKETS>

                                decimal _costo_envio = 0;
                                string  _OPG         = "";
                                if (Ent_Global._canal_venta == "BA")
                                {
                                    _costo_envio = Convert.ToDecimal(dt.Rows[0]["ven_costo_e"]);
                                    _OPG         = "N";
                                }
                                else
                                {
                                    _OPG = dt.Rows[0]["OPG"].ToString();
                                    if (_OPG == "2")
                                    {
                                        _OPG = "N";
                                    }
                                }


                                string _marca_emp        = dt.Rows[0]["Alm_Descripcion"].ToString();
                                string _direccion_emp    = dt.Rows[0]["Alm_Direccion"].ToString();
                                string _Telefono_emp     = dt.Rows[0]["Alm_Telefono"].ToString();
                                string _razon_social_emp = dt.Rows[0]["Emp_Razon"].ToString();
                                string _ruc_emp          = dt.Rows[0]["Emp_Ruc"].ToString();
                                String _nota             = dt.Rows[0]["nota"].ToString();
                                string _impresora        = dt.Rows[0]["impresora"].ToString();
                                #endregion
                                #region <VARIABLES DE IMPRESORA>
                                string _autoriacion_imp = "Autorizacion : " + dt.Rows[0]["Emp_Autorizacion"].ToString();
                                string _serie_imp       = "Impresora : " + dt.Rows[0]["serie_impresora"].ToString();

                                Decimal _monto_efe = Convert.ToDecimal(dt.Rows[0]["montoefe"]);
                                Decimal _monto_tar = Convert.ToDecimal(dt.Rows[0]["montotar"]);
                                Decimal _monto_vue = Convert.ToDecimal(dt.Rows[0]["montovuel"]);

                                #endregion
                                #region <TIPO DE DOCUMENTO>
                                string   _numero         = dt.Rows[0]["nrodoc"].ToString();
                                string   _tipo_numero    = ((_numero.Substring(0, 1).ToString() == "F") ? "FACTURA: " : "BOLETA: ") + _numero;
                                DateTime _fecha_doc      = Convert.ToDateTime(dt.Rows[0]["Ven_Fecha"]);
                                string   _fecha_doc_text = "Fecha : " + _fecha_doc.ToString("dd/MM/yyyy") + " , " + _fecha_doc.ToString("hh:mm tt");
                                decimal  _igv            = Convert.ToDecimal(dt.Rows[0]["Ven_Igv_Porc"].ToString());

                                decimal _percepcionp   = Convert.ToDecimal(dt.Rows[0]["Ven_PercepcionP"].ToString());
                                decimal _percepcionm   = Convert.ToDecimal(dt.Rows[0]["Ven_PercepcionM"].ToString());
                                string  _cod_hash      = dt.Rows[0]["cod_hash"].ToString();
                                String  _estadook      = dt.Rows[0]["EstadoOk"].ToString();
                                Decimal _monto_nc      = Convert.ToDecimal(dt.Rows[0]["monto_nc"].ToString());
                                string  _referencia_nc = dt.Rows[0]["referencia_nc"].ToString();
                                string  _ven_pst_ref   = "";
                                if (Ent_Global._canal_venta == "BA")
                                {
                                    _ven_pst_ref = dt.Rows[0]["ven_pst_ref"].ToString();
                                }

                                #endregion
                                #region <VARIABLES DE CLIENTES>
                                string _cliente_nom     = dt.Rows[0]["nombres"].ToString();
                                string _cliente_dni_ruc = dt.Rows[0]["Bas_Documento"].ToString();
                                #endregion
                                #region <FORMATO DE IMPRESION FACTURA O BOLETA>
                                CrearTicket tk = new CrearTicket();
                                tk.TextoCentro(_marca_emp);
                                tk.TextoCentro(_direccion_emp);
                                tk.TextoCentro("Telefono " + _Telefono_emp);
                                tk.TextoCentro(_razon_social_emp);
                                tk.TextoCentro(_ruc_emp);
                                tk.TextoIzquierda(_autoriacion_imp);
                                tk.TextoIzquierda(_serie_imp);
                                tk.TextoIzquierda(_tipo_numero);

                                if (Ent_Global._canal_venta == "BA")
                                {
                                    tk.TextoIzquierda("Ref.Pedido " + _ven_pst_ref);
                                }

                                tk.TextoIzquierda("");
                                tk.TextoCentro("DETALLE DE COMPRA");
                                tk.TextoIzquierda("");
                                tk.lineasGuio();
                                tk.TextoIzquierda("Cliente : ");
                                tk.TextoIzquierda(_cliente_nom);
                                tk.TextoIzquierda(((_numero.Substring(0, 1).ToString() == "F") ? "R.U.C : " : "DNI :  ") + _cliente_dni_ruc);
                                tk.TextoIzquierda(_fecha_doc_text);
                                tk.TextoIzquierda("");
                                tk.EncabezadoVenta("CODIGO  | DESCR.         | CNT | PRECIO ");
                                tk.lineasIgual();
                                //items del tickets
                                decimal dSubtotal = 0;
                                decimal descuento = 0;
                                for (Int32 i = 0; i < dt.Rows.Count; ++i)
                                {
                                    string  _iarticulo      = dt.Rows[i]["Art_Id"].ToString();
                                    string  _articulonombre = dt.Rows[i]["Art_Descripcion"].ToString();
                                    string  _des_largo      = TruncateAt(dt.Rows[i]["Art_Descripcion"].ToString().PadRight(40), 40);
                                    string  _talla          = dt.Rows[i]["Ven_Det_TalId"].ToString();
                                    decimal _cantidad       = Convert.ToInt32(dt.Rows[i]["Ven_Det_Cantidad"]);
                                    Decimal _articulo_total = Convert.ToDecimal(dt.Rows[i]["articulo_total"].ToString());
                                    decimal _comision       = Convert.ToDecimal(dt.Rows[i]["Ven_Det_ComisionM"].ToString());

                                    //string _codigo_descripcion = TruncateAt(_iarticulo.PadRight(10), 10) +
                                    //TruncateAt(_articulonombre.PadRight(9), 10) + TruncateAt(_talla.PadLeft(4), 4) + TruncateAt(_cantidad.ToString("#0").PadLeft(5), 5) + TruncateAt(((_OPG == "1")?0: _articulo_total).ToString("#0.00").PadLeft(9), 9);

                                    string _codigo_descripcion = "";/* TruncateAt(_iarticulo.PadRight(10), 10) +
                                                                     * TruncateAt(_articulonombre.PadRight(9), 10) + TruncateAt(_talla.PadLeft(4), 4) + TruncateAt(_cantidad.ToString("#0").PadLeft(5), 5) + TruncateAt(((_OPG == "1") ? 0 : _articulo_total).ToString("#0.00").PadLeft(9), 9);*/

                                    switch (_OPG)
                                    {
                                    /*muestra*/
                                    case "1":
                                    case "3":
                                        _codigo_descripcion = TruncateAt(_iarticulo.PadRight(10), 10) +
                                                              TruncateAt(_articulonombre.PadRight(9), 10) + TruncateAt(_talla.PadLeft(4), 4) + TruncateAt(_cantidad.ToString("#0").PadLeft(5), 5) + TruncateAt((0).ToString("#0.00").PadLeft(9), 9);
                                        break;

                                    /*regalos*/
                                    case "2":
                                        _codigo_descripcion = TruncateAt(_iarticulo.PadRight(10), 10) +
                                                              TruncateAt(_articulonombre.PadRight(9), 10) + TruncateAt(_talla.PadLeft(4), 4) + TruncateAt(_cantidad.ToString("#0").PadLeft(5), 5) + TruncateAt(((_OPG == "1") ? 0 : _articulo_total).ToString("#0.00").PadLeft(9), 9);
                                        break;

                                    /*ninguna*/
                                    case "N":
                                        _codigo_descripcion = TruncateAt(_iarticulo.PadRight(10), 10) +
                                                              TruncateAt(_articulonombre.PadRight(9), 10) + TruncateAt(_talla.PadLeft(4), 4) + TruncateAt(_cantidad.ToString("#0").PadLeft(5), 5) + TruncateAt((_articulo_total).ToString("#0.00").PadLeft(9), 9);
                                        break;
                                    }
                                    tk.AgregarItems(_codigo_descripcion);
                                    tk.AgregarItems(_des_largo);
                                    dSubtotal += _articulo_total;
                                    descuento += _comision;
                                }

                                //dSubtotal += _costo_envio;
                                double mtoigv = 0;
                                if (Ent_Global._canal_venta == "BA")
                                {
                                    /*
                                     * decimal _igv_monto = Convert.ToDecimal(dt.Rows[0]["ven_igv"].ToString());
                                     * dSubtotal = Math.Round(dSubtotal, 2, MidpointRounding.AwayFromZero);
                                     * //mtoigv = Math.Round(((Double.Parse(dSubtotal.ToString()) - Convert.ToDouble(descuento)) + Convert.ToDouble(_costo_envio) ) * double.Parse(_igv.ToString()), 1, MidpointRounding.AwayFromZero);
                                     * mtoigv = Math.Round(Double.Parse(_igv_monto.ToString()), 2, MidpointRounding.AwayFromZero);
                                     */
                                    mtoigv = Math.Round((Double.Parse(dSubtotal.ToString()) - Convert.ToDouble(descuento)) * double.Parse(_igv.ToString()), 2, MidpointRounding.AwayFromZero);
                                }
                                else
                                {
                                    mtoigv = Math.Round((Double.Parse(dSubtotal.ToString()) - Convert.ToDouble(descuento)) * double.Parse(_igv.ToString()), 2, MidpointRounding.AwayFromZero);
                                }
                                Int32   porcigv    = Convert.ToInt32((_igv * 100));
                                decimal totalpagar = ((dSubtotal - descuento) + Convert.ToDecimal(mtoigv)) + _percepcionm;

                                tk.lineasGuio();

                                if (Ent_Global._canal_venta == "AQ")
                                {
                                    switch (_OPG)
                                    {
                                    case "1":
                                    case "3":
                                        tk.AgregarFooter("     " + TruncateAt("OP. GRATUITA".ToString().PadRight(16), 16) + TruncateAt("S/".ToString().PadRight(3), 3) + TruncateAt(dSubtotal.ToString("#0.00").PadLeft(14), 14));
                                        dSubtotal = 0;
                                        tk.AgregarFooter("     " + TruncateAt("SUB-TOTAL".ToString().PadRight(16), 16) + TruncateAt("S/".ToString().PadRight(3), 3) + TruncateAt(dSubtotal.ToString("#0.00").PadLeft(14), 14));
                                        break;

                                    case "2":
                                        break;

                                    case "N":
                                        tk.AgregarFooter("     " + TruncateAt("SUB-TOTAL".ToString().PadRight(16), 16) + TruncateAt("S/".ToString().PadRight(3), 3) + TruncateAt(dSubtotal.ToString("#0.00").PadLeft(14), 14));
                                        break;
                                    }
                                }
                                else
                                {
                                    tk.AgregarFooter("     " + TruncateAt("SUB-TOTAL".ToString().PadRight(16), 16) + TruncateAt("S/".ToString().PadRight(3), 3) + TruncateAt(dSubtotal.ToString("#0.00").PadLeft(14), 14));
                                }


                                tk.AgregarFooter("     " + TruncateAt("DESCUENTO(-)".ToString().PadRight(16), 16) + TruncateAt("S/".ToString().PadRight(3), 3) + TruncateAt(descuento.ToString("#0.00").PadLeft(14), 14));

                                //if (Ent_Global._canal_venta == "BA")
                                //{
                                //    tk.AgregarFooter("     " + TruncateAt("COST.ENVI(+)".ToString().PadRight(16), 16) + TruncateAt("S/".ToString().PadRight(3), 3) + TruncateAt(_costo_envio.ToString("#0.00").PadLeft(14), 14));
                                //}

                                tk.AgregarFooter("     " + TruncateAt("IGV " + porcigv + "%".ToString().PadRight(16), 16) + TruncateAt("S/".ToString().PadRight(3), 3) + TruncateAt(mtoigv.ToString("#0.00").PadLeft(14), 14));
                                tk.AgregarFooter("     " + TruncateAt("------------".ToString().PadRight(14), 14));

                                if (_estadook != "2")
                                {
                                    if (Ent_Global._canal_venta == "BA")
                                    {
                                        tk.AgregarFooter("     " + TruncateAt("TOTAL".ToString().PadRight(16), 16) + TruncateAt("S/".ToString().PadRight(3), 3) + TruncateAt((((dSubtotal - descuento)) + Convert.ToDecimal(mtoigv)).ToString("#0.00").PadLeft(14), 14));
                                    }
                                    else
                                    {
                                        tk.AgregarFooter("     " + TruncateAt("TOTAL".ToString().PadRight(16), 16) + TruncateAt("S/".ToString().PadRight(3), 3) + TruncateAt(((dSubtotal - descuento) + Convert.ToDecimal(mtoigv)).ToString("#0.00").PadLeft(14), 14));
                                    }
                                }

                                if (_estadook == "1")
                                {
                                    tk.AgregarFooter("     " + TruncateAt("------------".ToString().PadRight(14), 14));
                                    tk.AgregarFooter("     " + TruncateAt("PERCEPCION " + _percepcionp + "%".ToString().PadRight(16), 16) + TruncateAt("S/".ToString().PadRight(3), 3) + TruncateAt(_percepcionm.ToString("#0.00").PadLeft(14), 14));
                                    tk.AgregarFooter("     " + TruncateAt("------------".ToString().PadRight(14), 14));
                                    tk.AgregarFooter("     " + TruncateAt("TOTAL A PAGAR".ToString().PadRight(16), 16) + TruncateAt("S/".ToString().PadRight(3), 3) + TruncateAt(totalpagar.ToString("#0.00").PadLeft(14), 14));
                                }

                                if (_estadook == "2")
                                {
                                    Decimal _var_sb = Convert.ToDecimal(((dSubtotal - descuento) + Convert.ToDecimal(mtoigv)));

                                    if (_var_sb < _monto_nc)
                                    {
                                        _monto_nc = _var_sb;
                                    }
                                    decimal _total_nc = _var_sb - _monto_nc;

                                    decimal _total_pagar_nc = (_var_sb - _monto_nc) + Convert.ToDecimal(_percepcionm);

                                    tk.AgregarFooter("     " + TruncateAt("DESC NC  (-)".ToString().PadRight(16), 16) + TruncateAt("S/".ToString().PadRight(3), 3) + TruncateAt(_monto_nc.ToString("#0.00").PadLeft(14), 14));
                                    tk.AgregarFooter("     " + TruncateAt("------------".ToString().PadRight(14), 14));
                                    tk.AgregarFooter("     " + TruncateAt("TOTAL".ToString().PadRight(16), 16) + TruncateAt("S/".ToString().PadRight(3), 3) + TruncateAt(_total_nc.ToString("#0.00").PadLeft(14), 14));
                                    if (_total_nc != 0)
                                    {
                                        if (Ent_Global._canal_venta != "BA")
                                        {
                                            tk.AgregarFooter("     " + TruncateAt("------------".ToString().PadRight(14), 14));
                                            tk.AgregarFooter("     " + TruncateAt("PERCEPCION " + _percepcionp + "%".ToString().PadRight(16), 16) + TruncateAt("S/".ToString().PadRight(3), 3) + TruncateAt(_percepcionm.ToString("#0.00").PadLeft(14), 14));
                                            tk.AgregarFooter("     " + TruncateAt("------------".ToString().PadRight(14), 14));
                                            tk.AgregarFooter("     " + TruncateAt("TOTAL A PAGAR".ToString().PadRight(16), 16) + TruncateAt("S/".ToString().PadRight(3), 3) + TruncateAt(_total_pagar_nc.ToString("#0.00").PadLeft(14), 14));
                                        }
                                    }
                                    tk.lineasGuio();
                                    tk.TextoIzquierda(_referencia_nc);
                                }

                                #region <REGION DE VENTAS DIRECTA CON PAGO>
                                if (Ent_Global._pvt_almaid != "11")
                                {
                                    tk.lineasGuio();
                                    tk.AgregarFooter(TruncateAt("EFECTIVO".ToString().PadRight(21), 21) + TruncateAt("S/".ToString().PadRight(3), 3) + TruncateAt(_monto_efe.ToString("#0.00").PadLeft(14), 14));
                                    /*VERIFICAR SI SE PAGA CON TARJETA*/
                                    if (ds.Tables.Count > 1)
                                    {
                                        DataTable dttarjeta = ds.Tables[1];
                                        if (dttarjeta != null)
                                        {
                                            if (dttarjeta.Rows.Count > 0)
                                            {
                                                tk.AgregarFooter(TruncateAt("TARJETA".ToString().PadRight(16), 16));
                                                for (Int32 i = 0; i < dttarjeta.Rows.Count; ++i)
                                                {
                                                    string  nom_tarjeta   = dttarjeta.Rows[i]["bin_des"].ToString();
                                                    string  num_tarjeta   = dttarjeta.Rows[i]["num_tar"].ToString();
                                                    Decimal monto_tarjeta = Convert.ToDecimal(dttarjeta.Rows[i]["monto_tar"]);
                                                    tk.AgregarFooter(TruncateAt(nom_tarjeta.ToString().PadRight(22), 22) + " " + TruncateAt(_monto_efe.ToString(num_tarjeta.ToString()).PadLeft(16), 16));
                                                    tk.AgregarFooter("                     " + TruncateAt("S/".ToString().PadRight(3), 3) + TruncateAt(monto_tarjeta.ToString("#0.00").PadLeft(14), 14));
                                                }
                                            }
                                        }
                                    }
                                    tk.AgregarFooter(TruncateAt("VUELTO".ToString().PadRight(21), 21) + TruncateAt("S/".ToString().PadRight(3), 3) + TruncateAt(_monto_vue.ToString("#0.00").PadLeft(14), 14));
                                }
                                #endregion

                                tk.lineasGuio();
                                tk.TextoCentro(_cod_hash);
                                tk.lineasGuio();

                                /*en esta linea ponemos el texto para ecommerce*/
                                if (Ent_Global._canal_venta == "BA")
                                {
                                    String _nota_tk = dt.Rows[0]["nota_tk"].ToString();
                                    tk.TextoIzquierda(_nota_tk);
                                    tk.lineasGuio();
                                }


                                tk.TextoIzquierda(_nota);
                                tk.lineasGuio();
                                tk.TextoCentro("*** GRACIAS POR SU COMPRA ***");
                                tk.lineasGuio();
                                tk.ImprimirTicket(_impresora);

                                #region <EN ESTE CASO CAPTURAMOS EL FORMATO DE TXT SUNAT PARA EL QR>
                                DataTable dtformato = ds.Tables[2];

                                string _formato_doc = "";

                                if (dtformato != null)
                                {
                                    if (dtformato.Rows.Count > 0)
                                    {
                                        _formato_doc = dtformato.Rows[0]["formatsunat"].ToString();
                                    }
                                }

                                #endregion

                                Fe_Sunat_Qr fesunat_qr = new Fe_Sunat_Qr();
                                byte[]      codigo_qr  = fesunat_qr.GetQrSunatInvoiceCdp(_formato_doc);

                                Image  im  = byteArrayToImage(codigo_qr);
                                Bitmap bmp = new Bitmap(im, new Size(100, 100));
                                tk.HeaderImage = bmp;
                                tk.PrintQR(_impresora);

                                if (!CrearTicket._esta_imp)
                                {
                                    return(null);
                                }
                                #endregion
                            }
                        }
                    }
                }
                #endregion

                #region <IMPRESION DE NOTA DE CREDITO>
                if (_tipo == "N")
                {
                    DataSet ds = Dat_NotaCredito.leer_NC_tk(_numero_doc);
                    if (ds != null)
                    {
                        DataTable dt = ds.Tables[0];

                        if (dt != null)
                        {
                            if (dt.Rows.Count > 0)
                            {
                                #region <VARIABLES DE EMPRESA TICKETS>

                                string _OPG = "";
                                if (Ent_Global._canal_venta == "AQ")
                                {
                                    _OPG = dt.Rows[0]["OPG"].ToString();

                                    if (_OPG == "2")
                                    {
                                        _OPG = "N";
                                    }
                                }
                                else
                                {
                                    _OPG = "N";
                                }

                                string _marca_emp        = dt.Rows[0]["Alm_Descripcion"].ToString();
                                string _direccion_emp    = dt.Rows[0]["Alm_Direccion"].ToString();
                                string _Telefono_emp     = dt.Rows[0]["Alm_Telefono"].ToString();
                                string _razon_social_emp = dt.Rows[0]["Emp_Razon"].ToString();
                                string _ruc_emp          = dt.Rows[0]["Emp_Ruc"].ToString();
                                String _nota             = dt.Rows[0]["nota"].ToString();
                                string _impresora        = dt.Rows[0]["impresora"].ToString();
                                #endregion
                                #region <VARIABLES DE IMPRESORA>
                                string _autoriacion_imp = "Autorizacion : " + dt.Rows[0]["Emp_Autorizacion"].ToString();
                                string _serie_imp       = "Impresora : " + dt.Rows[0]["serie_impresora"].ToString();
                                #endregion
                                #region <TIPO DE DOCUMENTO>
                                string   _numero         = dt.Rows[0]["nrodoc"].ToString();
                                string   _tipo_numero    = "NOTA DE CREDITO: " + _numero;
                                DateTime _fecha_doc      = Convert.ToDateTime(dt.Rows[0]["Not_Fecha"]);
                                string   _fecha_doc_text = "Fecha : " + _fecha_doc.ToString("dd/MM/yyyy") + " , " + _fecha_doc.ToString("hh:mm tt");
                                decimal  _igv            = Convert.ToDecimal(dt.Rows[0]["Ven_Igv_Porc"].ToString());
                                //decimal _percepcionp = Convert.ToDecimal(dt.Rows[0]["Ven_PercepcionP"].ToString());
                                //decimal _percepcionm = Convert.ToDecimal(dt.Rows[0]["Ven_PercepcionM"].ToString());
                                string _cod_hash = dt.Rows[0]["cod_hash"].ToString();
                                String _estadook = dt.Rows[0]["EstadoOk"].ToString();
                                //Decimal _monto_nc = Convert.ToDecimal(dt.Rows[0]["monto_nc"].ToString());
                                string _referencia_nc = dt.Rows[0]["referencia"].ToString();
                                #endregion
                                #region <VARIABLES DE CLIENTES>
                                string _cliente_nom     = dt.Rows[0]["nombres"].ToString();
                                string _cliente_dni_ruc = dt.Rows[0]["Bas_Documento"].ToString();
                                #endregion
                                #region <FORMATO DE IMPRESION FACTURA O BOLETA>
                                CrearTicket tk = new CrearTicket();
                                tk.TextoCentro(_marca_emp);
                                tk.TextoCentro(_direccion_emp);
                                tk.TextoCentro("Telefono " + _Telefono_emp);
                                tk.TextoCentro(_razon_social_emp);
                                tk.TextoCentro(_ruc_emp);
                                tk.TextoIzquierda(_autoriacion_imp);
                                tk.TextoIzquierda(_serie_imp);
                                tk.TextoIzquierda(_tipo_numero);
                                tk.TextoIzquierda("");
                                tk.TextoCentro("DETALLE DE COMPRA");
                                tk.TextoIzquierda("");
                                tk.lineasGuio();
                                tk.TextoIzquierda("Cliente : ");
                                tk.TextoIzquierda(_cliente_nom);
                                tk.TextoIzquierda(((_numero.Substring(0, 1).ToString() == "F") ? "R.U.C : " : "DNI :  ") + _cliente_dni_ruc);
                                tk.TextoIzquierda(_fecha_doc_text);
                                tk.TextoIzquierda("");
                                tk.EncabezadoVenta("CODIGO  | DESCR.         | CNT | PRECIO ");
                                tk.lineasIgual();
                                //items del tickets
                                decimal dSubtotal = 0;
                                decimal descuento = 0;
                                for (Int32 i = 0; i < dt.Rows.Count; ++i)
                                {
                                    string  _iarticulo          = dt.Rows[i]["Art_Id"].ToString();
                                    string  _articulonombre     = dt.Rows[i]["Art_Descripcion"].ToString();
                                    string  _des_largo          = TruncateAt(dt.Rows[i]["Art_Descripcion"].ToString().PadRight(40), 40);
                                    string  _talla              = dt.Rows[i]["Not_Det_TalId"].ToString();
                                    decimal _cantidad           = Convert.ToInt32(dt.Rows[i]["Not_Det_Cantidad"]);
                                    Decimal _articulo_total     = Convert.ToDecimal(dt.Rows[i]["articulo_total"].ToString());
                                    decimal _comision           = Convert.ToDecimal(dt.Rows[i]["Not_Det_ComisionM"].ToString());
                                    string  _codigo_descripcion = "";/* TruncateAt(_iarticulo.PadRight(10), 10) +
                                                                      * TruncateAt(_articulonombre.PadRight(9), 10) + TruncateAt(_talla.PadLeft(4), 4) + TruncateAt(_cantidad.ToString("#0").PadLeft(5), 5) + TruncateAt(((_OPG == "1")?0:_articulo_total).ToString("#0.00").PadLeft(9), 9);*/

                                    switch (_OPG)
                                    {
                                    case "1":
                                        _codigo_descripcion = TruncateAt(_iarticulo.PadRight(10), 10) +
                                                              TruncateAt(_articulonombre.PadRight(9), 10) + TruncateAt(_talla.PadLeft(4), 4) + TruncateAt(_cantidad.ToString("#0").PadLeft(5), 5) + TruncateAt((0).ToString("#0.00").PadLeft(9), 9);
                                        break;

                                    case "2":
                                        _codigo_descripcion = TruncateAt(_iarticulo.PadRight(10), 10) +
                                                              TruncateAt(_articulonombre.PadRight(9), 10) + TruncateAt(_talla.PadLeft(4), 4) + TruncateAt(_cantidad.ToString("#0").PadLeft(5), 5) + TruncateAt(((_OPG == "1") ? 0 : _articulo_total).ToString("#0.00").PadLeft(9), 9);
                                        break;

                                    case "N":
                                        _codigo_descripcion = TruncateAt(_iarticulo.PadRight(10), 10) +
                                                              TruncateAt(_articulonombre.PadRight(9), 10) + TruncateAt(_talla.PadLeft(4), 4) + TruncateAt(_cantidad.ToString("#0").PadLeft(5), 5) + TruncateAt((_articulo_total).ToString("#0.00").PadLeft(9), 9);
                                        break;
                                    }

                                    tk.AgregarItems(_codigo_descripcion);
                                    tk.AgregarItems(_des_largo);
                                    dSubtotal += _articulo_total;
                                    descuento += _comision;
                                }

                                double mtoigv = 0;

                                mtoigv = Math.Round((Double.Parse(dSubtotal.ToString()) - Convert.ToDouble(descuento)) * double.Parse(_igv.ToString()), 2, MidpointRounding.AwayFromZero);

                                Int32   porcigv    = Convert.ToInt32((_igv * 100));
                                decimal totalpagar = ((dSubtotal - descuento) + Convert.ToDecimal(mtoigv));

                                tk.lineasGuio();

                                switch (_OPG)
                                {
                                case "1":
                                    tk.AgregarFooter("     " + TruncateAt("OP. GRATUITA".ToString().PadRight(16), 16) + TruncateAt("S/".ToString().PadRight(3), 3) + TruncateAt(dSubtotal.ToString("#0.00").PadLeft(14), 14));
                                    tk.AgregarFooter("     " + TruncateAt("SUB-TOTAL".ToString().PadRight(16), 16) + TruncateAt("S/".ToString().PadRight(3), 3) + TruncateAt(0.ToString("#0.00").PadLeft(14), 14));
                                    break;

                                case "2":
                                    break;

                                case "N":
                                    tk.AgregarFooter("     " + TruncateAt("SUB-TOTAL".ToString().PadRight(16), 16) + TruncateAt("S/".ToString().PadRight(3), 3) + TruncateAt(dSubtotal.ToString("#0.00").PadLeft(14), 14));
                                    break;
                                }

                                //if (_OPG == "1")
                                //{
                                //    tk.AgregarFooter("     " + TruncateAt("OP. GRATUITA".ToString().PadRight(16), 16) + TruncateAt("S/".ToString().PadRight(3), 3) + TruncateAt(dSubtotal.ToString("#0.00").PadLeft(14), 14));
                                //    tk.AgregarFooter("     " + TruncateAt("SUB-TOTAL".ToString().PadRight(16), 16) + TruncateAt("S/".ToString().PadRight(3), 3) + TruncateAt(0.ToString("#0.00").PadLeft(14), 14));
                                //}
                                //else
                                //{
                                //    tk.AgregarFooter("     " + TruncateAt("SUB-TOTAL".ToString().PadRight(16), 16) + TruncateAt("S/".ToString().PadRight(3), 3) + TruncateAt(dSubtotal.ToString("#0.00").PadLeft(14), 14));
                                //}
                                tk.AgregarFooter("     " + TruncateAt("DESCUENTO(-)".ToString().PadRight(16), 16) + TruncateAt("S/".ToString().PadRight(3), 3) + TruncateAt(descuento.ToString("#0.00").PadLeft(14), 14));
                                tk.AgregarFooter("     " + TruncateAt("IGV " + porcigv + "%".ToString().PadRight(16), 16) + TruncateAt("S/".ToString().PadRight(3), 3) + TruncateAt(mtoigv.ToString("#0.00").PadLeft(14), 14));
                                tk.AgregarFooter("     " + TruncateAt("------------".ToString().PadRight(14), 14));

                                if (_estadook != "2")
                                {
                                    switch (_OPG)
                                    {
                                    case "1":
                                        tk.AgregarFooter("     " + TruncateAt("TOTAL".ToString().PadRight(16), 16) + TruncateAt("S/".ToString().PadRight(3), 3) + TruncateAt(0.ToString("#0.00").PadLeft(14), 14));
                                        break;

                                    case "2":
                                        break;

                                    case "N":
                                        tk.AgregarFooter("     " + TruncateAt("TOTAL".ToString().PadRight(16), 16) + TruncateAt("S/".ToString().PadRight(3), 3) + TruncateAt(((dSubtotal - descuento) + Convert.ToDecimal(mtoigv)).ToString("#0.00").PadLeft(14), 14));
                                        break;
                                    }
                                }

                                if (_estadook == "1")
                                {
                                    tk.AgregarFooter("     " + TruncateAt("------------".ToString().PadRight(14), 14));
                                    //tk.AgregarFooter("     " + TruncateAt("PERCEPCION " + _percepcionp + "%".ToString().PadRight(16), 16) + TruncateAt("S/".ToString().PadRight(3), 3) + TruncateAt(_percepcionm.ToString("#0.00").PadLeft(14), 14));
                                    tk.AgregarFooter("     " + TruncateAt("------------".ToString().PadRight(14), 14));
                                    tk.AgregarFooter("     " + TruncateAt("TOTAL A PAGAR".ToString().PadRight(16), 16) + TruncateAt("S/".ToString().PadRight(3), 3) + TruncateAt(totalpagar.ToString("#0.00").PadLeft(14), 14));
                                }

                                if (_estadook == "2")
                                {
                                    Decimal _var_sb = Convert.ToDecimal(((dSubtotal - descuento) + Convert.ToDecimal(mtoigv)));

                                    //if (_var_sb < _monto_nc)
                                    //{
                                    //    _monto_nc = _var_sb;
                                    //}
                                    //decimal _total_nc = _var_sb - _monto_nc;

                                    //decimal _total_pagar_nc = (_var_sb - _monto_nc) ;

                                    //tk.AgregarFooter("     " + TruncateAt("DESC NC  (-)".ToString().PadRight(16), 16) + TruncateAt("S/".ToString().PadRight(3), 3) + TruncateAt(_monto_nc.ToString("#0.00").PadLeft(14), 14));
                                    //tk.AgregarFooter("     " + TruncateAt("------------".ToString().PadRight(14), 14));
                                    //tk.AgregarFooter("     " + TruncateAt("TOTAL".ToString().PadRight(16), 16) + TruncateAt("S/".ToString().PadRight(3), 3) + TruncateAt(_total_nc.ToString("#0.00").PadLeft(14), 14));
                                    //if (_total_nc != 0)
                                    //{
                                    //    tk.AgregarFooter("     " + TruncateAt("------------".ToString().PadRight(14), 14));
                                    //    //tk.AgregarFooter("     " + TruncateAt("PERCEPCION " + _percepcionp + "%".ToString().PadRight(16), 16) + TruncateAt("S/".ToString().PadRight(3), 3) + TruncateAt(_percepcionm.ToString("#0.00").PadLeft(14), 14));
                                    //    tk.AgregarFooter("     " + TruncateAt("------------".ToString().PadRight(14), 14));
                                    //    tk.AgregarFooter("     " + TruncateAt("TOTAL A PAGAR".ToString().PadRight(16), 16) + TruncateAt("S/".ToString().PadRight(3), 3) + TruncateAt(_total_pagar_nc.ToString("#0.00").PadLeft(14), 14));
                                    //}
                                    //tk.lineasGuio();
                                    //tk.TextoIzquierda(_referencia_nc);
                                }

                                tk.lineasGuio();
                                tk.TextoIzquierda("FIRMA:");

                                switch (_OPG)
                                {
                                case "1":
                                    tk.AgregarFooter(TruncateAt("EFECTIVO:".ToString().PadRight(21), 21) + TruncateAt("S/".ToString().PadRight(3), 3) + TruncateAt(0.ToString("#0.00").PadLeft(14), 14));
                                    break;

                                case "2":
                                    break;

                                case "N":
                                    tk.AgregarFooter(TruncateAt("EFECTIVO:".ToString().PadRight(21), 21) + TruncateAt("S/".ToString().PadRight(3), 3) + TruncateAt(((dSubtotal - descuento) + Convert.ToDecimal(mtoigv)).ToString("#0.00").PadLeft(14), 14));
                                    break;
                                }



                                tk.lineasGuio();
                                tk.TextoIzquierda("REFERENCIA DE N/C: " + _referencia_nc);
                                tk.lineasGuio();
                                tk.TextoCentro(_cod_hash);
                                tk.lineasGuio();
                                tk.TextoIzquierda(_nota);
                                tk.lineasGuio();
                                tk.TextoCentro("*** GRACIAS POR SU COMPRA ***");
                                tk.lineasGuio();
                                tk.ImprimirTicket(_impresora);

                                #region <EN ESTE CASO CAPTURAMOS EL FORMATO DE TXT SUNAT PARA EL QR>
                                DataTable dtformato = ds.Tables[1];

                                string _formato_doc = "";

                                if (dtformato != null)
                                {
                                    if (dtformato.Rows.Count > 0)
                                    {
                                        _formato_doc = dtformato.Rows[0]["formatsunat"].ToString();
                                    }
                                }
                                #endregion
                                Fe_Sunat_Qr fesunat_qr = new Fe_Sunat_Qr();
                                byte[]      codigo_qr  = fesunat_qr.GetQrSunatNoteCdp(_formato_doc);

                                Image  im  = byteArrayToImage(codigo_qr);
                                Bitmap bmp = new Bitmap(im, new Size(100, 100));
                                tk.HeaderImage = bmp;
                                tk.PrintQR(_impresora);

                                //byte[] codigo_qr = null;
                                //Image im = byteArrayToImage(codigo_qr);
                                //Bitmap bmp = new Bitmap(im, new Size(100, 100));
                                //tk.HeaderImage = bmp;
                                //tk.PrintQR(_impresora);

                                //tk.CortaTicket();
                                //tk.ImprimirTicket(_impresora);


                                if (!CrearTicket._esta_imp)
                                {
                                    return(null);
                                }
                                #endregion
                            }
                        }
                    }
                }
                #endregion
                return("ok");
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
コード例 #17
0
        public static void ejecutar_factura_electronica_ws(string _tipo_doc, string _num_doc, ref string cod_hash, ref string _error, ref string url_pdf)
        {
            string _formato_doc = "";

            try
            {
                string return_numdoc = "";
                _formato_doc = Dat_Venta._leer_formato_electronico_PAPERLESS(_tipo_doc, _num_doc, ref _error, ref return_numdoc);
                string ruc_empresa = Ent_Global._ws_ruc; string ws_login = Ent_Global._ws_login; string ws_pass = Ent_Global._ws_password; Int32 tipofoliacion = 1;

                ///*0 = ID asignado
                //1 = URL del XML
                //2 = URL del PDF
                //3 = Estado en la SUNAT
                //4 = Folio Asignado(Serie - Correlativo)
                //5 = Bytes del PDF en Base64
                //6 = PDF417(Cadena de texto a imprimir en el PDF 417)
                //7 = HASH(Cadena de texto)*/

                FEBata.OnlinePortTypeClient gen_fe = new FEBata.OnlinePortTypeClient();
                string consulta = gen_fe.OnlineGeneration(ruc_empresa, ws_login, ws_pass, _formato_doc, tipofoliacion, 7);

                consulta = consulta.Replace("&", "amp;");

                var doc    = XDocument.Parse(consulta);
                var result = from factura in doc.Descendants("Respuesta")
                             select new
                {
                    Codigo  = factura.Element("Codigo").Value,
                    Mensaje = factura.Element("Mensaje").Value.Replace("amp;", "&"),
                };

                foreach (var item in result)
                {
                    if (item.Codigo != "0")
                    {
                        _error = item.Mensaje;
                        break;
                    }
                    else
                    {
                        cod_hash = item.Mensaje;

                        /*SI LA GENERACION ES EXITOSA ENTONCES EXTRAEMOS EL PDF URL*/
                        consulta = gen_fe.OnlineGeneration(ruc_empresa, ws_login, ws_pass, _formato_doc, tipofoliacion, 2);
                        consulta = consulta.Replace("&", "amp;");
                        var resultpdf = from factura in doc.Descendants("Respuesta")
                                        select new
                        {
                            Codigo  = factura.Element("Codigo").Value,
                            Mensaje = factura.Element("Mensaje").Value.Replace("amp;", "&"),
                        };
                        foreach (var itempdf in resultpdf)
                        {
                            url_pdf = itempdf.Mensaje;
                        }
                        /*******/
                    }
                }

                //GeneratorCdp generatorCdp = new GeneratorCdp();
                //XmlDocument xmlDoc = new XmlDocument();
                //xmlDoc.Load("C:\\carvajal\\xml\\20101951872_07_F030_22.xml");

                //byte[] _valor=generatorCdp.GetImageBarCodeForNoteCdp(_formato_doc);

                //if (_tipo_doc == "B" || _tipo_doc == "F")
                //{
                //    cod_hash = generatorCdp.GetHashForInvoiceCdp(_formato_doc);
                //}
                //else
                //{
                //    cod_hash = generatorCdp.GetHashForNoteCdp(_formato_doc);
                //}
                //enviar_xml_webservice bata===>>>
            }
            catch (Exception exc)
            {
                _error = exc.Message;
            }
        }
コード例 #18
0
        private void vistaprevia()
        {
            if (valida_guia() == 0)
            {
                lblmensaje.Content = " >> El numero de Tickets no existe...";

                if (Ent_Global._canal_venta == "BA")
                {
                    MessageBox.Show("El número de comprobante no existe.", Ent_Msg.msgerror, MessageBoxButton.OK, MessageBoxImage.Error);
                    txtnumero.Focus();
                }
                return;
            }
            else
            {
                //-----INICIO---SB-VTEX2020---20201222_12:57----
                string tienda_id = Ent_Global._tienda_id;
                if (tienda_id == null)
                {
                    Reporte_Guia_Remision frm_ca = new Reporte_Guia_Remision();
                    Reporte_Guia_Remision._idv_invoice = txtnumero.Text.Trim();
                    //Reporte_Guia_Remision_VTEX._tienda_id = tienda_id;
                    frm_ca.Show();
                }
                else
                {
                    //IMPRESION CON VISTA PREVIA
                    //Reporte_Guia_Remision_VTEX frmvtex = new Reporte_Guia_Remision_VTEX();
                    //Reporte_Guia_Remision_VTEX._idv_invoice = txtnumero.Text.Trim();
                    //Reporte_Guia_Remision_VTEX._tienda_id = tienda_id;
                    //frmvtex.Show();
                    //IMPRESION DIRECTA
                    //validacion de clave token para reeimprimir

                    DataTable dtFlag = new DataTable();
                    if (txtToken.Text != "" && txtnumero.Text != "")
                    {
                        dtFlag = Dat_Venta.valida_token_reimpresion(3, txtToken.Text, txtnumero.Text); // validar clave token ingresada
                    }
                    else
                    {
                        MessageBox.Show("Debe usar una clave token antes de reimprimir.", Ent_Msg.msginfomacion, MessageBoxButton.OK, MessageBoxImage.Information);
                        return;
                    }

                    if (dtFlag.Rows[0][0].ToString() == txtToken.Text.Trim())
                    {
                        ImpresionDirecta objImpresionD = new ImpresionDirecta(); // objeto para la impresion directa
                        objImpresionD.ImpresionD(txtnumero.Text.Trim(), tienda_id);
                        txtnumero.Clear();
                        txtToken.Clear();
                        btnToken.IsEnabled = true;
                        txtnumero.Focus();
                    }

                    else
                    {
                        MessageBox.Show("La clave token no es la correcta debe avisar al Administrador o generar una nueva clave.", Ent_Msg.msgerror, MessageBoxButton.OK, MessageBoxImage.Error);
                        txtToken.Clear();
                        txtToken.Focus();
                        return;
                    }

                    //Reporte_Guia_Remision._idv_invoice = txtnumero.Text.Trim();
                    //    Reporte_Guia_Remision_VTEX._idv_invoice = txtnumero.Text.Trim();
                    //Reporte_Guia_Remision_VTEX._tienda_id = tienda_id;
                    lblmensaje.Content = " >> Generando Vista Previa...";
                    //Reporte_Guia_Remision frm = new Reporte_Guia_Remision();
                    //Reporte_Guia_Remision_VTEX frm = new Reporte_Guia_Remision_VTEX();

                    //-----FIN---SB-VTEX2020---20201222_12:57----

                    //frm.Show();
                }
            }
        }
コード例 #19
0
 private Int32 valida_guia()
 {
     return(Dat_Venta.valida_guia(txtnumero.Text));
 }
コード例 #20
0
        private async void  btnxml_Click(object sender, RoutedEventArgs e)
        {
            ProgressDialogController ProgressAlert = null;

            try
            {
                DataRowView row = (DataRowView)((Button)e.Source).DataContext;

                var mySettings = new MetroDialogSettings()
                {
                    AffirmativeButtonText = "Si",
                    NegativeButtonText    = "No",
                    //FirstAuxiliaryButtonText = "Cancelar",
                    ColorScheme = MetroDialogOptions.ColorScheme,
                };



                string  _codigo_hash = (string)row["Not_Cod_Hash"].ToString(); // dg1.Rows[e.RowIndex].Cells["Not_Cod_Hash"].Value.ToString(); ;
                decimal _not_id_imp  = Convert.ToDecimal(row["Not_Id"]);       // Convert.ToDecimal(dg1.Rows[e.RowIndex].Cells["Not_Id"].Value.ToString());
                string  _numdoc_r    = (string)row["numdoc"].ToString();       // dg1.Rows[e.RowIndex].Cells["numdoc"].Value.ToString(); ;


                MessageDialogResult result = await this.ShowMessageAsync(Ent_Msg.msginfomacion, "¿Realmente desea enviar a sunat el XML DEL DOCUMENTO de tipo : Nota de Credito  con numero : " + _numdoc_r,
                                                                         MessageDialogStyle.AffirmativeAndNegative, mySettings);

                if (result == MessageDialogResult.Affirmative)
                {
                    ProgressAlert = await this.ShowProgressAsync(Ent_Msg.msgcargando, "Enviando a sunat la Nota de Credito...");

                    //string _codigo_hash = "";
                    string _error = ""; String _url_pdf = "";
                    await Task.Run(() => Facturacion_Electronica.ejecutar_factura_electronica("N", _not_id_imp.ToString(), ref _codigo_hash, ref _error, ref _url_pdf));


                    if (_error.Length > 0)
                    {
                        if (ProgressAlert != null)
                        {
                            await ProgressAlert.CloseAsync();
                        }
                        await this.ShowMessageAsync(Ent_Msg.msginfomacion, "ERROR AL ENVIAR EL XML A SUNAT. CONSULTE CON SISTEMAS..==>> TIPO DE ERROR (" + _error + ")");

                        return;
                    }

                    //EN ESTE PASO VAMOS A GRABAR EL CODIGO HASH
                    await Task.Run(() => Dat_Venta.insertar_codigo_hash(_not_id_imp.ToString(), _codigo_hash, "N", _url_pdf));


                    //****enviar los xml al server

                    await Task.Run(() => Basico._enviar_webservice_xml());

                    await Task.Run(() => consultar_refresh());

                    if (ProgressAlert != null)
                    {
                        await ProgressAlert.CloseAsync();
                    }
                    //Mouse.OverrideCursor = Cursors.Wait;
                }
                else
                {
                    if (ProgressAlert != null)
                    {
                        await ProgressAlert.CloseAsync();
                    }
                }
            }
            catch
            {
                if (ProgressAlert != null)
                {
                    await ProgressAlert.CloseAsync();
                }
            }
        }
コード例 #21
0
        private async void facturar()
        {
            var metroWindow = this;

            metroWindow.MetroDialogOptions.ColorScheme = MetroDialogOptions.ColorScheme;
            ProgressDialogController ProgressAlert = null;

            try
            {
                Int32 _valida = await valida_facturar();

                if (_valida == 1)
                {
                    return;
                }


                var mySettings = new MetroDialogSettings()
                {
                    AffirmativeButtonText = "Si",
                    NegativeButtonText    = "No",
                    //FirstAuxiliaryButtonText = "Cancelar",
                    ColorScheme = MetroDialogOptions.ColorScheme,
                };

                var okSettings = new MetroDialogSettings()
                {
                    AffirmativeButtonText = "Ok",
                    ColorScheme           = MetroDialogOptions.ColorScheme,
                };


                MessageDialogResult result = await this.ShowMessageAsync(Ent_Msg.msginfomacion, "¿Realmente desea FACTURAR este pedido ? " + _liq_id,
                                                                         MessageDialogStyle.AffirmativeAndNegative, mySettings);


                if (result == MessageDialogResult.Affirmative)
                {
                    string _error_venta = "";
                    //Mouse.OverrideCursor = Cursors.Wait;
                    ProgressAlert = await this.ShowProgressAsync(Ent_Msg.msgcargando, "Generando Facturación Electrónica del pedido N°:" + _liq_id);  //show message

                    ProgressAlert.SetIndeterminate();
                    string grabar_numerodoc = await Task.Run(() => Dat_Venta.insertar_venta(_liq_id, ref _error_venta));

                    //if (grabar_numerodoc == "0")
                    //{
                    //    //string _error = "";
                    //    lblmensaje.Content = "El número de pedido "+ _liq_id + " ya fue facturado posiblemente por tienda , actualice la bandeja de pedidos.";
                    //    return;

                    //}

                    //string grabar_numerodoc = Dat_Venta.insertar_venta(_liq_id);

                    if (grabar_numerodoc != "-1")
                    {
                        lblmensaje.Content = " > Factura generada con exito - Número : " + grabar_numerodoc + ".";
                        ///
                        deshabilita_controles();

                        //aca generamos el codigo hash
                        string _codigo_hash = "";
                        string _error       = "";
                        string _url_pdf     = "";

                        await Task.Run(() => Facturacion_Electronica.ejecutar_factura_electronica(Basico.Left(grabar_numerodoc, 1), grabar_numerodoc, ref _codigo_hash, ref _error, ref _url_pdf));

                        //await Task.Run(() => Facturacion_Electronica.ejecutar_factura_electronica_ws (Basico.Left(grabar_numerodoc, 1), grabar_numerodoc, ref _codigo_hash, ref _error,ref _url_pdf));

                        //*************


                        //****enviar los xml al server

                        if (_codigo_hash.Length == 0 || _codigo_hash == null)
                        {
                            await Task.Run(() => Facturacion_Electronica.ejecutar_factura_electronica(Basico.Left(grabar_numerodoc, 1), grabar_numerodoc, ref _codigo_hash, ref _error, ref _url_pdf));
                        }
                        if (_codigo_hash.Length == 0 || _codigo_hash == null)
                        {
                            _error = "GENERACION DE HASH";
                            await ProgressAlert.CloseAsync();

                            await metroWindow.ShowMessageAsync(Ent_Msg.msginfomacion, "ERROR EN LA GENERACION POR FAVOR CONSULTE CON SISTEMAS..==>> TIPO DE ERROR (" + _error + ")", MessageDialogStyle.Affirmative, metroWindow.MetroDialogOptions);

                            _error = "";
                            //MessageBox.Show("ERROR EN LA GENERACION POR FAVOR CONSULTE CON SISTEMAS..==>> TIPO DE ERROR (" + _error + ")", Ent_Msg.msginfomacion,MessageBoxButton.OK,MessageBoxImage.Error);
                            //return;
                        }

                        if (_error.Length > 0)
                        {
                            await ProgressAlert.CloseAsync();

                            await metroWindow.ShowMessageAsync(Ent_Msg.msginfomacion, "ERROR EN LA GENERACION POR FAVOR CONSULTE CON SISTEMAS..==>> TIPO DE ERROR (" + _error + ")", MessageDialogStyle.Affirmative, metroWindow.MetroDialogOptions);

                            //MessageBox.Show("ERROR EN LA GENERACION POR FAVOR CONSULTE CON SISTEMAS..==>> TIPO DE ERROR (" + _error + ")", Ent_Msg.msginfomacion,MessageBoxButton.OK,MessageBoxImage.Error);
                            return;
                        }

                        //await Task.Run(() => Basico._enviar_webservice_xml()); ==>>SE COMENTO PORQUE YA NO SE TRABAJA CON FACTURACION ELECTRONICA CARVAJAL
                        //EN ESTE PASO VAMOS A GRABAR EL CODIGO HASH
                        if (_codigo_hash.Length > 0)
                        {
                            await Task.Run(() => Dat_Venta.insertar_codigo_hash(grabar_numerodoc, _codigo_hash, "V", _url_pdf));
                        }
                        ///
                        //byte[] img_qr = null;
                        string _genera_tk = await Task.Run(() => Imprimir_Doc.Generar_Impresion("F", grabar_numerodoc) /*Impresora_Epson.Config_Imp.GenerarTicketFact(grabar_numerodoc, 1, _codigo_hash)*/);

                        /*IMPRESION DE ETIQUETAS*/
                        if (Ent_Global._canal_venta == "AQ")
                        {
                            GenerarEtiqueta genera_etiqueta = new GenerarEtiqueta();
                            await Task.Run(() => genera_etiqueta.aq_imp_etiqueta2(grabar_numerodoc));
                        }

                        #region <SOLO PARA E-CCOMMERCE>

                        if (Ent_Global._canal_venta == "BA")
                        {
                            string _cod_urbano = "";
                            //-----INICIO---SB-VTEX2020---20201222_12:57--
                            //await Task.Run(() => Basico.act_presta_urbano(grabar_numerodoc, ref _error, ref _cod_urbano));
                            await Task.Run(() => Basico.act_presta_urbano(grabar_numerodoc, "", ref _error, ref _cod_urbano));

                            //-----FIN---SB-VTEX2020---20201222_12:57--
                            //string mensaje_urb = (_cod_urbano.Trim().Length == 0) ? "" : "Se envío correctamente la solicitud a Urbano, Nro guía obtenida: " + _cod_urbano + "\n\n";
                            await ProgressAlert.CloseAsync();

                            string msj_eccomer = "";

                            /*si el codigo de urbano esta null entonces no va el mensaje*/
                            if (_cod_urbano.Trim().Length > 0)
                            {
                                msj_eccomer = "Se Genero correctamente la factura nro: " + grabar_numerodoc + "\n"
                                              + "Se envío correctamente la solicitud al Courier, Nro guía obtenida: " + _cod_urbano + "\n\n"
                                              + "¿Desea imprimir la etiqueta de este pedido? " + _liq_id;

                                MessageDialogResult resultetiq = await this.ShowMessageAsync(Ent_Msg.msginfomacion, msj_eccomer, MessageDialogStyle.AffirmativeAndNegative, mySettings);

                                if (resultetiq == MessageDialogResult.Affirmative)
                                {
                                    ProgressAlert = await this.ShowProgressAsync(Ent_Msg.msgcargando, "Generando Facturacion Electronica del pedido N°:" + _liq_id);  //show message

                                    ProgressAlert.SetIndeterminate();
                                    /*FALTA PONER LA VALIDACION DE LA ETIQUETA*/
                                    //resultetiq
                                    GenerarEtiqueta genera_etiqueta = new GenerarEtiqueta();
                                    //-----INICIO---SB-VTEX2020---20201222_12:57--
                                    //await Task.Run(() => genera_etiqueta.imp_etiqueta2(grabar_numerodoc));
                                    await Task.Run(() => genera_etiqueta.imp_etiqueta2(grabar_numerodoc, ""));

                                    //-----FIN---SB-VTEX2020---20201222_12:57--
                                }
                                else
                                {
                                    ProgressAlert = await this.ShowProgressAsync(Ent_Msg.msgcargando, "Generando Facturacion Electronica del pedido N°:" + _liq_id);  //show message

                                    ProgressAlert.SetIndeterminate();
                                }
                                // await ProgressAlert.CloseAsync();
                            }
                            else
                            {
                                msj_eccomer = "Se Genero correctamente la factura nro: " + grabar_numerodoc + "\n"
                                              + "No se pudo enviar la solicitud a Courier.\n\n";
                                MessageDialogResult resultetiq = await this.ShowMessageAsync(Ent_Msg.msginfomacion, msj_eccomer, MessageDialogStyle.Affirmative, okSettings);
                            }

                            //await metroWindow.ShowMessageAsync(Ent_Msg.msginfomacion, msj_eccomer, MessageDialogStyle.Affirmative, metroWindow.MetroDialogOptions);
                        }
                        #endregion

                        //string _genera_tk = Impresora_Epson.Config_Imp.GenerarTicketFact(grabar_numerodoc, 1, _codigo_hash);

                        if (_genera_tk == null)
                        {
                            lbltickets.Content = " >> Se producjo un error en la impresion del ticket";
                        }
                        else
                        {
                            lbltickets.Content = " > Ticket Generado con exito";
                        }
                        Reporte_Guia_Remision._idv_invoice = grabar_numerodoc;
                        Reporte_Guia_Remision form = new Reporte_Guia_Remision();
                        form.Show();

                        if (ProgressAlert.IsOpen)
                        {
                            await ProgressAlert.CloseAsync();
                        }
                    }
                    else
                    {
                        deshabilita_controles();
                        lblmensaje.Foreground = Brushes.Maroon;
                        ///
                        //lblmensaje.Content = " > Ha ocurrido un problema y no se ha podido generar la factura.";
                        lblmensaje.Content = _error_venta;
                        ///
                        await ProgressAlert.CloseAsync();

                        await metroWindow.ShowMessageAsync(Ent_Msg.msginfomacion, _error_venta, MessageDialogStyle.Affirmative, metroWindow.MetroDialogOptions);
                    }
                }
            }
            catch (Exception exc)
            {
                deshabilita_controles();
                lblmensaje.Foreground = Brushes.Maroon;
                ///
                lblmensaje.Content = exc.Message;
                ///
                if (ProgressAlert != null)
                {
                    await ProgressAlert.CloseAsync();
                }
                await metroWindow.ShowMessageAsync(Ent_Msg.msginfomacion, exc.Message, MessageDialogStyle.Affirmative, metroWindow.MetroDialogOptions);
            }
            //Mouse.OverrideCursor = null;
        }
コード例 #22
0
        public static void ejecutar_factura_electronica(string _tipo_doc, string _num_doc, ref string cod_hash, ref string _error, ref string url_pdf)
        {
            string _formato_doc = "";

            try
            {
                if (Ent_Global._canal_venta == "AQ")
                {
                    if (Ent_Conexion._Base_Datos != "BdAquarella")
                    {
                        cod_hash = "prueba";
                        return;
                    }
                }
                if (Ent_Global._canal_venta == "BA")
                {
                    if (Ent_Conexion._Base_Datos != "BD_ECOMMERCE")
                    {
                        cod_hash = "prueba";
                        return;
                    }
                }

                /*CUANDO SE PASE A PRODUCCION HAY QUE PONER LA BD ORIGINAL*/
                if (Ent_Global._canal_venta == "MV")
                {
                    if (Ent_Conexion._Base_Datos != "BD_MULTIVENDE")
                    {
                        cod_hash = "prueba";
                        return;
                    }
                }

                /*QUIERE DECIR QUE QUE SE USA LA FACTURACION ELECTRONICA DE CARVAJAL*/
                if (Ent_Global.pr_facturador == "C")
                {
                    _formato_doc = Dat_Venta._leer_formato_electronico(_tipo_doc, _num_doc, ref _error);
                    GeneratorCdp generatorCdp = new GeneratorCdp();
                    //XmlDocument xmlDoc = new XmlDocument();
                    //xmlDoc.Load("C:\\carvajal\\xml\\20101951872_07_F030_22.xml");

                    //byte[] _valor=generatorCdp.GetImageBarCodeForNoteCdp(_formato_doc);

                    if (_tipo_doc == "B" || _tipo_doc == "F")
                    {
                        cod_hash = generatorCdp.GetHashForInvoiceCdp(_formato_doc);
                    }
                    else
                    {
                        cod_hash = generatorCdp.GetHashForNoteCdp(_formato_doc);
                    }
                }
                /*ESTA CONDICION ES EL PROVEEDOR PAPERLESS*/
                if (Ent_Global.pr_facturador == "P")
                {
                    string return_numdoc = "";

                    _formato_doc = Dat_Venta._leer_formato_electronico_PAPERLESS(_tipo_doc, _num_doc, ref _error, ref return_numdoc);
                    string ruc_empresa = Ent_Global._ws_ruc; string ws_login = Ent_Global._ws_login; string ws_pass = Ent_Global._ws_password; Int32 tipofoliacion = 1;
                    Int32  id_tipo_doc = 0;
                    switch (_tipo_doc)
                    {
                    case "B":
                    case "F":
                        id_tipo_doc = (Basico.Left(_num_doc, 1) == "B" ? 3 : 1);
                        break;

                    case "N":
                        id_tipo_doc = 7;
                        break;
                    }
                    ///*0 = ID asignado
                    //1 = URL del XML
                    //2 = URL del PDF
                    //3 = Estado en la SUNAT
                    //4 = Folio Asignado(Serie - Correlativo)
                    //5 = Bytes del PDF en Base64
                    //6 = PDF417(Cadena de texto a imprimir en el PDF 417)
                    //7 = HASH(Cadena de texto)*/

                    FEBata.OnlinePortTypeClient gen_fe = new FEBata.OnlinePortTypeClient();
                    string consulta = gen_fe.OnlineGeneration(ruc_empresa, ws_login, ws_pass, _formato_doc, tipofoliacion, 7);

                    consulta = consulta.Replace("&", "amp;");

                    var doc    = XDocument.Parse(consulta);
                    var result = from factura in doc.Descendants("Respuesta")
                                 select new
                    {
                        Codigo  = factura.Element("Codigo").Value,
                        Mensaje = factura.Element("Mensaje").Value.Replace("amp;", "&"),
                    };

                    foreach (var item in result)
                    {
                        if (item.Codigo != "0")
                        {
                            _error = item.Mensaje;
                            break;
                        }
                        else
                        {
                            cod_hash = item.Mensaje;

                            /*SI LA GENERACION ES EXITOSA ENTONCES EXTRAEMOS EL PDF URL*/
                            consulta = gen_fe.OnlineRecovery(ruc_empresa, ws_login, ws_pass, id_tipo_doc, return_numdoc, 2);
                            consulta = consulta.Replace("&", "amp;");
                            var docpdf    = XDocument.Parse(consulta);
                            var resultpdf = from factura in docpdf.Descendants("Respuesta")
                                            select new
                            {
                                Codigo  = factura.Element("Codigo").Value,
                                Mensaje = factura.Element("Mensaje").Value.Replace("amp;", "&"),
                            };
                            foreach (var itempdf in resultpdf)
                            {
                                url_pdf = itempdf.Mensaje;
                            }
                            /*******/
                        }
                    }
                }
                //enviar_xml_webservice bata===>>>
            }
            catch (Exception exc)
            {
                _error = exc.Message;
            }
        }
コード例 #23
0
        private async void paqartcodbarra()
        {
            try
            {
                var metroWindow = this;
                metroWindow.MetroDialogOptions.ColorScheme = MetroDialogOptions.ColorScheme;
                if (txtarticulo.Text.Trim().Length == 0)
                {
                    await metroWindow.ShowMessageAsync(Ent_Msg.msginfomacion, "Ingrese el codigo de articulo...", MessageDialogStyle.Affirmative, metroWindow.MetroDialogOptions);

                    pnlarticulo.Background = Brushes.Red;
                    txtarticulo.Focus();
                    return;
                }

                //en este caso vamos a digitar la calidad
                //string v_articulo = txtarticulo.Text.Substring(0,txtarticulo.Text.Length-1);

                string v_articulo = txtarticulo.Text.Trim();
                //
                string _barra = (txtarticulo.Text.Trim().Length == 18 || txtarticulo.Text.Trim().Length == 13) ? txtarticulo.Text.Trim() : "";


                string[] info_articulo = Ent_BarCodes.getInfoFromTheBarCode(v_articulo);
                if (info_articulo != null && info_articulo.Length > 0)
                {
                    String sizeToAdd = info_articulo[1];
                    /// Article
                    String articleToAdd = info_articulo[0];

                    String calidadToAdd = info_articulo[2];

                    string varreturn = Dat_Venta.insertar_articulopaq(_paq_id, _liq_id, articleToAdd, sizeToAdd, 1, calidadToAdd, _barra);

                    if (varreturn.Equals("1"))
                    {
                        cargar_grilla();
                        pnlarticulo.Background = Brushes.YellowGreen;
                        lblmensaje.Content     = " > Artículo " + articleToAdd + " adicionado correctamente.";
                        txtarticulo.Text       = "";
                        txtarticulo.Focus();
                    }
                    else
                    {
                        await metroWindow.ShowMessageAsync(Ent_Msg.msginfomacion, "El Código Leído ( " + txtarticulo.Text + " ) no Corresponde a un Artículo en el Pedido o ya Ha Sido Empacado en Su Totalidad.", MessageDialogStyle.Affirmative, metroWindow.MetroDialogOptions);

                        pnlarticulo.Background = Brushes.Red;
                        txtarticulo.Focus();
                    }
                }
                else
                {
                    lblmensaje.Foreground = Brushes.Maroon;
                    lblmensaje.Content    = " > Articulo " + txtarticulo.Text + " desconocido o codigo de barras incorrecto !!.";
                    await metroWindow.ShowMessageAsync(Ent_Msg.msginfomacion, "Articulo desconocido o codigo de barras incorrecto !!.", MessageDialogStyle.Affirmative, metroWindow.MetroDialogOptions);

                    pnlarticulo.Background = Brushes.Red;
                    txtarticulo.Focus();
                }
            }
            catch (Exception exc)
            {
                MessageBox.Show(exc.Message, Ent_Msg.msginfomacion, MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
コード例 #24
0
        public static void LoadDataInvoiceReport(string _idv_invoice, string _tienda_id)
        {
            DataSet dsInvoiceHdr = Dat_Venta.leer_VTEX_venta_guia(_idv_invoice, _tienda_id);

            if (dsInvoiceHdr != null && dsInvoiceHdr.Tables[0].Rows.Count > 0)
            {
                ds_paquete = new DataSet();
                ds_paquete.Tables.Add(dsInvoiceHdr.Tables[2].Copy());

                DataTable dsInvHdr     = dsInvoiceHdr.Tables[0];
                String    destinatario = dsInvHdr.Rows[0]["nombres"].ToString();
                ///
                String idPerson = dsInvHdr.Rows[0]["Ven_Id"].ToString();
                ///
                String ubicacionCustomer = dsInvHdr.Rows[0]["direccion"].ToString();
                ///
                String telefono = dsInvHdr.Rows[0]["Bas_Telefono"].ToString();
                ///
                String celular = dsInvHdr.Rows[0]["Bas_Celular"].ToString();
                ///
                String transportadora = dsInvHdr.Rows[0]["Tra_Descripcion"].ToString();
                ///
                String guia = dsInvHdr.Rows[0]["Tra_Gui_No"].ToString();

                String lider     = dsInvHdr.Rows[0]["lider"].ToString();
                String lider_dir = dsInvHdr.Rows[0]["direccion_lider"].ToString();

                string agencia = dsInvHdr.Rows[0]["agencia"].ToString();

                string agencia_ruc = dsInvHdr.Rows[0]["agencia_ruc"].ToString();
                ///
                Decimal iva = 0;   //Convert.ToDecimal(dsInvHdr.Rows[0]["ihn_taxes"].ToString());
                ///
                Decimal flete = 0; //Convert.ToDecimal(dsInvHdr.Rows[0]["ihn_handling"].ToString());
                /// Fecha de remision
                ///
                DateTime fechaRemision = Convert.ToDateTime(dsInvHdr.Rows[0]["Ven_Fecha"].ToString());
                ///
                String esCopia = "";// ((Convert.ToDecimal(dsInvHdr.Rows[0]["IHN_PRT_CNT"].ToString())) > 1) ? " *** COPIA *** " : "";

                /// Descuento general
                Decimal dsctoGnral = 0;//Convert.ToDecimal(dsInvHdr.Rows[0]["ion_disscount"].ToString());

                ///
                String typeresolution = "";//dsInvHdr.Rows[0]["nuv_typeresolution"].ToString();

                ///

                string direccionf = "";
                string ubicalugar = dsInvHdr.Rows[0]["ubicalugar"].ToString();


                String resolucion = ""; //"Facturación " + typeresolution + " por Res. Dian " + dsInvHdr.Rows[0]["nuv_resolution"].ToString() +
                                        //" De " + (String.Format("{0:MM/dd/yyyy}", Convert.ToDateTime(dsInvHdr.Rows[0]["nud_date"].ToString()))) +
                                        // " Del Pref " + dsInvHdr.Rows[0]["NUV_CODE"].ToString() + "-" + dsInvHdr.Rows[0]["NUN_INVOICE_START"].ToString()
                                        //  + " Al Pref " + dsInvHdr.Rows[0]["NUV_CODE"].ToString() + "-" + dsInvHdr.Rows[0]["nun_invoice_end"].ToString();
                ///

                String puntoLlegada = "";         // dsInvHdr.Rows[0]["OHV_SHIP_TO"].ToString();

                String msgs = "";                 //dsInvHdr.Rows[0]["imv_text"].ToString();
                ///
                DataSet dsInvDtl = new DataSet(); // null;// _invDtlVM.getInvoiceDtl(_co, _idv_invoice);
                dsInvDtl.Tables.Add(dsInvoiceHdr.Tables[1].Copy());

                String wavDescription = "";
                String wavAddress     = "";
                String wavPhone       = "";

                foreach (DataRow drLine in dsInvDtl.Tables[0].Rows)
                {
                    ///
                    String numeroFactura = drLine["Ven_Det_Id"].ToString();
                    ///
                    String respCopia = esCopia;
                    ///
                    /// Detalle de la factura
                    ///
                    String codigoArticulo = drLine["Ven_Det_ArtId"].ToString();
                    ///
                    String nomArticulo = drLine["Art_Descripcion"].ToString();
                    ///
                    String marca = drLine["Mar_Descripcion"].ToString();
                    ///
                    Decimal cantidad = Convert.ToDecimal(drLine["Ven_Det_Cantidad"].ToString());
                    ///
                    String talla = drLine["Ven_Det_TalId"].ToString();;
                    ///
                    Decimal valorVentaArticulo = 0; // Convert.ToDecimal(drLine["idn_sellprice"].ToString());
                    ///
                    Decimal valorLinea = 0;         // Convert.ToDecimal(drLine["articlevalue"].ToString());
                    ///
                    Decimal dsctoArticulo = 0;      // Convert.ToDecimal((drLine["idn_disscount"].ToString().Equals(String.Empty)) ? "0" : (drLine["idn_disscount"].ToString()));
                    ///
                    Decimal comisionArticulo = 0;   // Convert.ToDecimal(drLine["idn_commission"].ToString());
                    ///
                    String color = drLine["Col_Descripcion"].ToString();

                    String wavUbication = drLine["Des_Seguimiento"].ToString(); //campo descripcion seguimiento

                    ReportInvoiceClass objRI = new ReportInvoiceClass(destinatario, ubicacionCustomer, telefono, celular, "", idPerson, "",
                                                                      _idv_liquidation, numeroFactura, fechaRemision, resolucion, "",
                                                                      respCopia, typeresolution, codigoArticulo, nomArticulo, color,
                                                                      cantidad, talla, valorVentaArticulo,
                                                                      dsctoArticulo, comisionArticulo, marca, valorLinea, iva, flete, guia, transportadora, msgs, dsctoGnral,
                                                                      wavDescription, wavAddress, wavPhone, wavUbication, puntoLlegada, ubicalugar, direccionf, lider, lider_dir, agencia, agencia_ruc);

                    _invoiceData.Add(objRI);
                }/// End foreach
            }
        }
コード例 #25
0
        private async void btnanular_Click(object sender, RoutedEventArgs e)
        {
            DataRowView row = (DataRowView)((Button)e.Source).DataContext;

            string  _not_id  = (string)row["ven_id"].ToString();  // dg1.Rows[e.RowIndex].Cells["ven_id"].Value.ToString();
            string  _tipo    = (string)row["tipodoc"].ToString(); //dg1.Rows[e.RowIndex].Cells["tipodoc"].Value.ToString();
            string  _numdoc  = (string)row["numdoc"].ToString();  //dg1.Rows[e.RowIndex].Cells["numdoc"].Value.ToString();
            string  _doc     = (string)row["ven_id"].ToString();  //dg1.Rows[e.RowIndex].Cells["ven_id"].Value.ToString();
            Boolean _anulado = (Boolean)row["anulado"];           // Convert.ToBoolean(dg1.Rows[e.RowIndex].Cells["anulado"].Value);
            //verificar si el documento paso las 72 horas de enviarse a la web service efact
            Boolean _valida = (Boolean)row["docu_vencido"];       // Convert.ToBoolean(dg1.Rows[e.RowIndex].Cells["docu_vencido"].Value);



            //string _not_numero = dg1.Rows[e.RowIndex].Cells["not_numero"].Value.ToString();

            if (_anulado)
            {
                MessageBox.Show("!El documento de tipo : " + _tipo + " con numero : " + _numdoc + " no se puede anular, porque YA ESTA ANULADO...", Ent_Msg.msginfomacion, MessageBoxButton.OK, MessageBoxImage.Exclamation);
                return;
            }

            _valida = false;

            if (_valida)
            {
                MessageBox.Show("!El documento de tipo : " + _tipo + " con numero : " + _numdoc + " no se puede anular, porque no es de la fecha actual...", Ent_Msg.msginfomacion, MessageBoxButton.OK, MessageBoxImage.Exclamation);
                return;
            }

            var mySettings = new MetroDialogSettings()
            {
                AffirmativeButtonText = "Si",
                NegativeButtonText    = "No",
                //FirstAuxiliaryButtonText = "Cancelar",
                ColorScheme = MetroDialogOptions.ColorScheme,
            };

            MessageDialogResult result = await this.ShowMessageAsync(Ent_Msg.msginfomacion, "¿Realmente desea anular el documento de tipo : " + _tipo + " con numero : " + _numdoc,
                                                                     MessageDialogStyle.AffirmativeAndNegative, mySettings);


            if (result == MessageDialogResult.Affirmative)
            {
                //Mouse.OverrideCursor = Cursors.Wait;
                string _error = "";

                //Facturacion_Electronica.anular_facturacion_electronica(_doc, ref _error,"NC");


                //if (_error.Length == 0)
                //{
                var ProgressAlert = await this.ShowProgressAsync(Ent_Msg.msgcargando, "Anulando Documento N°:" + _not_id); //show message

                ProgressAlert.SetIndeterminate();                                                                          //Infinite

                string _error_venta = await Task.Run(() => Dat_Venta._anular_venta(_not_id.ToString()));

                //show info

                #region <REGION EXCLUSIVA PARA E-COMMERCE>
                if (Ent_Global._canal_venta == "BA")
                {
                    string _tipo_doc = "";
                    if (_tipo == "Factura")
                    {
                        _tipo_doc = "FA";
                    }
                    if (_tipo == "Boleta")
                    {
                        _tipo_doc = "BO";
                    }
                    string _error_act_venta = await Task.Run(() => Dat_Venta._act_estado_anular_venta(_tipo_doc.ToString(), _not_id.ToString()));
                }
                #endregion

                //string _error_venta =Dat_Venta._anular_venta(_not_id.ToString());
                string _codigo_hashn = ""; String _url_pdf = "";

                if (_error_venta.Length == 0)
                {
                    await Task.Run(() => Facturacion_Electronica.ejecutar_factura_electronica("F", _not_id.ToString(), ref _codigo_hashn, ref _error, ref _url_pdf));

                    if (_error.Length == 0)
                    {
                        await Task.Run(() => Basico._enviar_webservice_xml());

                        Boolean  _tipoc_b    = chkactivar.IsChecked.Value;
                        DateTime _fechaini_b = Convert.ToDateTime(dtpdesde.Text);
                        DateTime _fechafin_b = Convert.ToDateTime(dtphasta.Text);
                        string   _doc_b      = txtdoc.Text;
                        //MessageBox.Show("!El documento de tipo : " + _tipo + " con numero : " + _numdoc + " Se Anulo con exito...", Ent_Msg.msginfomacion, MessageBoxButton.OK, MessageBoxImage.Information);
                        DataTable dt = await Task.Run(() => Dat_Venta.dt_consulta_pedido(_tipoc_b, _fechaini_b, _fechafin_b, _doc_b));

                        await ProgressAlert.CloseAsync();

                        dg1.ItemsSource = dt.DefaultView;
                        await this.ShowMessageAsync(Ent_Msg.msginfomacion, "!El documento de tipo : " + _tipo + " con numero : " + _numdoc + " Se Anulo con exito...");
                    }
                    else
                    {
                        await ProgressAlert.CloseAsync();

                        await this.ShowMessageAsync(Ent_Msg.msginfomacion, _error);

                        //MessageBox.Show(_error, Ent_Msg.msginfomacion, MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                }
                else
                {
                    await ProgressAlert.CloseAsync();

                    await this.ShowMessageAsync(Ent_Msg.msginfomacion, _error_venta);

                    //MessageBox.Show(_error_venta, Ent_Msg.msginfomacion, MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
            //}
            //Mouse.OverrideCursor = null;
        }