public virtual void anularConciliacionAutomatica(TB_Conciliacion objConciliacion) { ServiceMovimientoContable unSMC = new ServiceMovimientoContable(); using (var context = new dbSG2000Entities()) { using (TransactionScope transaction = new TransactionScope()) { var objConciliacionBD = (from c in context.TB_Conciliacion where c.IdConciliacion == objConciliacion.IdConciliacion select c).First <TB_Conciliacion>(); objConciliacionBD.TB_ConciliacionDetalle.ToList(); TB_ArchivoTarjeta un_TB_ArchivoTarjeta = (from c in context.TB_ArchivoTarjeta where c.id == objConciliacion.idArchivo select c).First(); // Eliminamos el detalle de la conciliacion foreach (TB_ConciliacionDetalle item in objConciliacionBD.TB_ConciliacionDetalle) { // eliminamos los detalle existentes // liberamos al cupon TB_Cupones objCupon = (from c in context.TB_Cupones where item.nrCupon == c.nrCupon select c).First(); var vlMontoAcreditacion = Convert.ToDouble(objCupon.vlMontoAcreditacion); objCupon.dtCobradoalCliente = null; // limpiamos la fecha de cobrado objCupon.flCobradoalCliente = false; // desconciliamos el cupon lo liberamos de la conciliacion objCupon.IdConciliacion = null; objCupon.vlMontoAcreditacion = null; objCupon.dtFechaAcreditacion = null; var nrFactura = objCupon.tpComprobanteCliente + "-" + objCupon.tpLetraCliente + "-" + objCupon.nrTalonarioCliente + "-" + objCupon.nrComprabanteCliente.Trim() + "/ Cupon: " + ExtensionString.EmptyIfNull(objCupon.nrCuponPosnet).Trim() + "/ Tarjeta: " + ExtensionString.EmptyIfNull(objCupon.nrTarjeta).Trim(); unSMC.GrabarAsientoContablePosdatados(vlMontoAcreditacion, objConciliacion.nrCajaAdm.Value, objConciliacion.dsUsuario, objConciliacion.IdConciliacion.ToString(), context, Anula_Viajes_con_Tarjeta_a_Bancos, Anula_conciliacion_de_Viajes, objCupon.nrLicencia.ToString(), nrFactura, item.fechaPago.Value, objCupon.nrCupon, un_TB_ArchivoTarjeta.formato); } // Eliminamos el detalle de la conciliacion //context.Database.ExecuteSqlCommand("DELETE FROM TB_ConciliacionDetalle where IdConciliacion= {0}", objConciliacionBD.IdConciliacion); objConciliacionBD.dtModificacion = DateTime.Now; objConciliacion.dsUsuario = this.Usuario; objConciliacion.nrCajaAdm = Decimal.Parse(this.CajaAdm); objConciliacionBD.flestado = "E"; // Conciliacion Eliminada context.SaveChanges(); // Procesamos el Movimientos posdatados unSMC.procesarMovimientosPosdatados(Decimal.Parse(this.CajaAdm), this.Usuario); transaction.Complete(); } } }
public virtual void modificarConciliacionAutomatica(List <decimal> listaCuponesDesconciliados, List <decimal> listaCuponesConciliados, TB_Conciliacion objConciliacion) { ServiceMovimientoContable unSMC = new ServiceMovimientoContable(); //una_conciliacion.TB_ConciliacionDetalle using (var context = new dbSG2000Entities()) { // detalle conciliacion desconciliadas var listaDetalleDesconciliados = (from c in context.TB_ConciliacionDetalle where listaCuponesDesconciliados.Contains(c.nrCupon) && c.IdConciliacion == objConciliacion.IdConciliacion select c).ToList();; // cupones conciliacion desconciliadas var listaTB_CuponesDesconciliados = (from c in context.TB_Cupones where listaCuponesDesconciliados.Contains(c.nrCupon) select c.flCobradoalCliente).ToList();; using (TransactionScope transaction = new TransactionScope()) { objConciliacion = (from c in context.TB_Conciliacion where c.IdConciliacion == objConciliacion.IdConciliacion select c).First <TB_Conciliacion>(); objConciliacion.dsUsuario = this.Usuario; objConciliacion.nrCajaAdm = Decimal.Parse(this.CajaAdm); objConciliacion.flestado = "A"; objConciliacion.dtModificacion = DateTime.Now; context.SaveChanges(); foreach (var detalleConciliacion in listaDetalleDesconciliados) { TB_Cupones un_Cupon = (from c in context.TB_Cupones where c.nrCupon == detalleConciliacion.nrCupon select c).First(); TB_ArchivoTarjeta un_TB_ArchivoTarjeta = (from c in context.TB_ArchivoTarjeta where c.id == objConciliacion.idArchivo select c).First(); var vlMontoAcreditacion = Convert.ToDouble(un_Cupon.vlMontoAcreditacion); un_Cupon.dtCobradoalCliente = null; // limpiamos la fecha de cobrado un_Cupon.flCobradoalCliente = false; // desconciliamos el cupon lo liberamos de la conciliacion un_Cupon.IdConciliacion = null; un_Cupon.vlMontoAcreditacion = null; un_Cupon.dtFechaAcreditacion = null; context.SaveChanges(); var nrFactura = un_Cupon.tpComprobanteCliente + "-" + un_Cupon.tpLetraCliente + "-" + un_Cupon.nrTalonarioCliente + "-" + un_Cupon.nrComprabanteCliente.Trim() + "/ Cupon: " + ExtensionString.EmptyIfNull(un_Cupon.nrCuponPosnet).Trim() + "/ Tarjeta: " + ExtensionString.EmptyIfNull(un_Cupon.nrTarjeta).Trim(); // GrabarAsientoContable(TotalConciliacionAnulado, Decimal.Parse(this._cajactiva), this._usuarioActivo, // objConciliacion, context, Anula_Viajes_con_Tarjeta_a_Bancos, Anula_conciliacion_de_Viajes); unSMC.GrabarAsientoContablePosdatados(vlMontoAcreditacion, objConciliacion.nrCajaAdm.Value, objConciliacion.dsUsuario, objConciliacion.IdConciliacion.ToString(), context, Anula_Viajes_con_Tarjeta_a_Bancos, Anula_conciliacion_de_Viajes, un_Cupon.nrLicencia.ToString(), nrFactura, detalleConciliacion.fechaPago.Value, un_Cupon.nrCupon, un_TB_ArchivoTarjeta.formato); context.TB_ConciliacionDetalle.Remove(detalleConciliacion); } context.SaveChanges(); // Procesamos el Movimientos posdatados unSMC.procesarMovimientosPosdatados(Decimal.Parse(this.CajaAdm), this.Usuario); transaction.Complete(); return; //return listadeViajesaConciliar.ToList(); } // desafectar el cupon flCobradoalCliente = false // desafectar el cupon dtCobradoalCliente = null // grabar la tabla de Movimientos en forma de anulacion } }
private void PrintDocumment(string OndeGerar, string ColetaTXT, int CodVendedor, string ColetaPDFAenviar) { string enviaMensagem = ""; int stepsEmail = 0; string Motivo = ""; Seller seller = new Seller(CodVendedor); seller.GetSeller(); try { if (Config == null) { Config.GetConfig(); } string sourceFile = Config.SourcePath + @"\" + ColetaPDFAenviar; string targetFile = @"C:\Aenviar\" + Order.Customer.CnpjCpf.Replace(".", "").Replace("-", "").Replace("/", "").Replace(" ", "") + @"\" + Order.OrderNumber + "-" + DateTime.Now.Hour.ToString("00") + "-" + DateTime.Now.Minute.ToString("00") + "-" + DateTime.Now.Second.ToString("00") + ".pdf"; string existeCaminhoDestino = @"C:\Aenviar\" + Order.Customer.CnpjCpf.Replace(".", "").Replace("-", "").Replace("/", "").Replace(" ", ""); if (!Directory.Exists(existeCaminhoDestino)) { Directory.CreateDirectory(existeCaminhoDestino); } //============== imprime na impressora 1 (Recepção) ====================================================================================== if (OndeGerar == "C" || OndeGerar == "Q" || OndeGerar == "Y") { if (File.Exists(targetFile)) { File.Delete(targetFile); } try { File.Move(sourceFile, targetFile); Console.WriteLine(); Console.WriteLine("Movido o PDF para a pasta do Cliente {0} ", Order.Customer.CnpjCpf); } catch (Exception e) { Console.WriteLine(sourceFile + " ++++> " + e.Message); return; } System.Threading.Thread.Sleep(1500); Console.WriteLine("Aguarde imprimindo coleta...{0}", ColetaPDFAenviar); Process proc = new Process(); proc.StartInfo.CreateNoWindow = false; proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; proc.StartInfo.Verb = "print"; proc.StartInfo.FileName = targetFile; proc.Start(); proc.WaitForInputIdle(); proc.CloseMainWindow(); proc.Close(); Console.WriteLine(); Console.WriteLine("Enviado o Arquivo {0} para impressora.", ColetaPDFAenviar); } else { //================== move para o aenviar a coleta do vendedor ================================================================================= //System.Threading.Thread.Sleep(2000); if (File.Exists(targetFile)) { File.Delete(targetFile); } try { File.Move(sourceFile, targetFile); Console.WriteLine(); Console.WriteLine("Movido o PDF para a pasta do Cliente {0} ", Order.Customer.CnpjCpf); } catch (Exception e) { Console.WriteLine(sourceFile + " ++++> " + e.Message); return; } if (IsValidEmail(Order.Customer.Email)) { if (Order.Customer.Contact.Trim() == "") { Order.Customer.Contact = "Comprador"; } if (Order.Customer.Email.Trim() == "") { Order.Customer.Email = "*****@*****.**"; } string Subject = Order.OrderNumber + " " + Order.Customer.Name; string[] Note1 = new string[3]; int i = 0; foreach (Notes note in Order.Notes) { if (note.Name == "Obs") { Note1[i] = note.Value; i++; } } enviaMensagem = Config.EmailBody + "<br /><br />" + Note1[0] + "<br /><br />" + Note1[1] + "Atenciosamente," + "<br />" + seller.Name + "<br />" + "Departamento de Vendas." + "<br />" + seller.Email + "<br />" + "Tel.: " + seller.Phone + " (31) 2101.6000 / Fax: (31) 2101.6010<br />" + "Av. Bias Fortes, 1853 | B. Barro Preto | Belo Horizonte - MG | Cep 30170-012 "; // envia a mensagem para o cliente SendMail sendMail = new SendMail(seller.Email, enviaMensagem, Order.Customer.Email, Subject, targetFile, seller.Email, seller.Password, Priority.Normal); stepsEmail = sendMail.Mailing() ? 1 : 0; // envia uma copia para a conta [email protected] sendMail = new SendMail( seller.Email, enviaMensagem, emailCustomer: "*****@*****.**", Subject, targetFile, seller.Name, seller.Password, Priority.Normal ); stepsEmail = sendMail.Mailing() ? 2 : 0; // envia confirmacao para o vendedor de mensagem enviada OK Subject = "OK - " + Order.OrderNumber + " " + Order.Customer.Name + " " + DateTime.Now.ToString(); enviaMensagem = Order.OrderNumber + "<br />" + Order.Customer.CnpjCpf + "-" + Order.Customer.Name + "<br /><b>Enviada com sucesso para:</b><br />" + Order.Customer.Email + "<br />Em: " + DateTime.Now.ToString() + ".<br />" + Note1 + "."; sendMail = new SendMail( emailAccount: Config.EmailAccount, emailBody: enviaMensagem, emailCustomer: seller.Email, Subject, targetFile, sellerName: "Vendas", password: Config.Password, Priority.Normal ); stepsEmail = sendMail.Mailing() ? 3 : 0; Console.WriteLine(); Console.WriteLine(Subject); } else { //caso o email do cliente nao seja valido envia um email para o vendedor avisando string Subject = "((ERRO)) - " + Order.OrderNumber + " " + Order.Customer.Name + " " + DateTime.Now.ToString(); enviaMensagem = Order.OrderNumber + "<br />" + Order.Customer.CnpjCpf + "-" + Order.Customer.Name + " - Vendedor: " + Order.SalesPerson + "<br /><b>NAO enviada para:</b><br />" + Order.Customer.Email + "<br />Motivo: <b>Email Invalido.</b>" + "<br />Em: " + DateTime.Now.ToString() + "."; SendMail sendMail = new SendMail( emailAccount: Config.EmailAccount, emailBody: enviaMensagem, emailCustomer: seller.Email, Subject, targetFile, sellerName: "Vendas", password: Config.Password, Priority.High ); stepsEmail = sendMail.Mailing() ? 3 : 0; } } } catch (Exception e) { string Subject = "((ERRO)) - " + Order.OrderNumber + " " + Order.Customer.Name + " " + DateTime.Now.ToString(); enviaMensagem = Order.OrderNumber + "<br />" + Order.Customer.CnpjCpf + "-" + Order.Customer.Name + " - Vendedor: " + Order.SalesPerson + "<br /><b>NAO enviada para:</b><br />" + Order.Customer.Email + "<br />Motivo: " + e.Message + "<br />Em: " + DateTime.Now.ToString() + "."; SendMail sendMail = new SendMail( emailAccount: Config.EmailAccount, emailBody: enviaMensagem, emailCustomer: seller.Email, Subject, "", sellerName: "Vendas", password: Config.Password, Priority.High ); stepsEmail = sendMail.Mailing() ? 4 : 0; Motivo = e.Message; } finally { // ========= copia o arquivo txt para a pasta impressos string sourceFile = Path.Combine(Config.SourcePath, ColetaTXT); string destFile = Path.Combine(Config.TargetPath, ColetaTXT); try { if (!Directory.Exists(Config.TargetPath)) { Directory.CreateDirectory(Config.TargetPath); } if (File.Exists(destFile)) { File.Delete(destFile); } File.Move(sourceFile, destFile); Console.WriteLine("Movido arquivo de {0} para {1}", sourceFile, destFile); } catch (Exception e) { Console.WriteLine(sourceFile + " >>> " + e.Message); } if (stepsEmail != 0) { //gera txt com os dados do envio. StreamWriter s = File.AppendText(Config.TargetPath + @"email.txt"); string cnpjCpf = (Order.Customer.CnpjCpf.Replace(".", "").Replace("-", "").Replace("/", "").Replace(" ", "") + "00").Trim(); if (cnpjCpf.Length == 13) { cnpjCpf = cnpjCpf + "000"; } string linha = "|" + CodVendedor.ToString("0000") + cnpjCpf + Order.OrderNumber.ToString("0000") + ExtensionString.Completing(Order.Customer.Email.Trim(), 50, ' ') + DateTime.Now.ToString("ddMMyy") + stepsEmail + DateTime.Now.ToString("HHmmss") + "00"; if (stepsEmail == 1) { linha = linha + ExtensionString.Completing("Enviada com sucesso para: " + ExtensionString.Completing(Order.Customer.Email.Trim(), 50, ' ') + " " + cnpjCpf + "-" + Order.Customer.Name.Trim() + " Em: " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"), 100, '='); } else { linha = linha + ExtensionString.Completing("Motivo: " + Motivo + " " + cnpjCpf + "-" + Order.Customer.Name.Trim() + " Em: " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"), 100, '='); } s.WriteLine(linha); s.Close(); } } }
public virtual void agregarConciliacion(List <TB_ConciliacionDetalleEx> plistaDetalleConciliacion, TB_Conciliacion objConciliacion) { ServiceMovimientoContable unSMC = new ServiceMovimientoContable(); try { using (var context = new dbSG2000Entities()) { using (TransactionScope transaction = new TransactionScope()) { objConciliacion.dsUsuario = this.Usuario; objConciliacion.nrCajaAdm = Decimal.Parse(this.CajaAdm); objConciliacion.flestado = "A"; objConciliacion.dtModificacion = DateTime.Now; context.TB_Conciliacion.Add(objConciliacion); context.SaveChanges(); foreach (var detalleConciliacion in plistaDetalleConciliacion) { TB_Cupones un_Cupon = (from c in context.TB_Cupones where c.nrCupon == detalleConciliacion.nrCupon select c).First(); TB_ArchivoTarjetaDetalle un_TB_ArchivoTarjetaDetalle = (from c in context.TB_ArchivoTarjetaDetalle where c.Id == detalleConciliacion.IdArchivoTarjetaDetalle select c).First(); TB_ArchivoTarjeta un_TB_ArchivoTarjeta = (from c in context.TB_ArchivoTarjeta where c.id == objConciliacion.idArchivo select c).First(); if (detalleConciliacion.fechaPago.Value.Subtract(detalleConciliacion.dtCupon).TotalDays >= this.CONCILIACION_DIF_DIAS_FECHA_PAGO_Y_CUPON) { detalleConciliacion.FechaPagoLicenciatario = detalleConciliacion.dtCupon.AddDays(this.CONCILIACION_CANT_DIAS_COBRO_TARJETA_CREDITO); } else { detalleConciliacion.FechaPagoLicenciatario = detalleConciliacion.dtCupon.AddDays(this.CONCILIACION_CANT_DIAS_COBRO_TARJETA_DEBITO); } un_Cupon.dtCobradoalCliente = detalleConciliacion.FechaPagoLicenciatario; // muy importante para habilitar el pago al licenciatario un_Cupon.flCobradoalCliente = true; // Marca de cociliacion un_Cupon.dtFechaAcreditacion = detalleConciliacion.fechaPago; // Fecha en que visa o master pagan al banco un_Cupon.vlMontoAcreditacion = System.Convert.ToDouble(un_TB_ArchivoTarjetaDetalle.importe); // importe enviado por la Tarjeta detalleConciliacion.IdConciliacion = objConciliacion.IdConciliacion; context.TB_ConciliacionDetalle.Add(detalleConciliacion.ToTB_ConciliacionDetalle()); context.SaveChanges(); un_Cupon.IdConciliacion = detalleConciliacion.IdConciliacion; // Asociamos la conciliacion al cupon var nrFactura = un_Cupon.tpComprobanteCliente + "-" + un_Cupon.tpLetraCliente + "-" + un_Cupon.nrTalonarioCliente + "-" + un_Cupon.nrComprabanteCliente.Trim() + "/ Cupon: " + ExtensionString.EmptyIfNull(un_Cupon.nrCuponPosnet).Trim() + "/ Tarjeta: " + ExtensionString.EmptyIfNull(un_Cupon.nrTarjeta).Trim(); unSMC.GrabarAsientoContablePosdatados(un_Cupon.vlMontoAcreditacion.Value, objConciliacion.nrCajaAdm.Value, objConciliacion.dsUsuario, objConciliacion.IdConciliacion.ToString(), context, Conciliacion_de_Viajes, Viajes_con_Tarjeta_a_Bancos, un_Cupon.nrLicencia.ToString(), nrFactura, detalleConciliacion.fechaPago.Value, un_Cupon.nrCupon, un_TB_ArchivoTarjeta.formato); } context.SaveChanges(); // Procesamos el Movimientos posdatados unSMC.procesarMovimientosPosdatados(Decimal.Parse(this.CajaAdm), this.Usuario); transaction.Complete(); return; //return listadeViajesaConciliar.ToList(); } } // Cierre using } catch (DbEntityValidationException e) { Console.WriteLine(e); Trace.TraceError(e.Message); foreach (var eve in e.EntityValidationErrors) { Trace.TraceError("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (var ve in eve.ValidationErrors) { Trace.TraceError("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } throw; } }
} // fin de modificarConciliacionAutomatica public override void anularConciliacion(TB_Conciliacion objConciliacion) { ServiceMovimientoContable unSMC = new ServiceMovimientoContable(); try { using (var context = new dbSG2000Entities()) { using (TransactionScope transaction = new TransactionScope()) { var objConciliacionBD = (from c in context.TB_Conciliacion where c.IdConciliacion == objConciliacion.IdConciliacion select c).First <TB_Conciliacion>(); objConciliacionBD.TB_ConciliacionDetalle.ToList(); // Eliminamos el detalle de la conciliacion foreach (TB_ConciliacionDetalle item in objConciliacionBD.TB_ConciliacionDetalle) { // eliminamos los detalle existentes // liberamos al cupon TB_Cupones objCupon = (from c in context.TB_Cupones where item.nrCupon == c.nrCupon select c).First(); var vlMontoAcreditacion = Convert.ToDouble(objCupon.vlMontoAcreditacion); objCupon.dtCobradoalCliente = null; // limpiamos la fecha de cobrado objCupon.flCobradoalCliente = false; // desconciliamos el cupon lo liberamos de la conciliacion objCupon.IdConciliacion = null; objCupon.vlMontoAcreditacion = null; objCupon.dtFechaAcreditacion = null; var nrFactura = objCupon.tpComprobanteCliente + "-" + objCupon.tpLetraCliente + "-" + objCupon.nrTalonarioCliente + "-" + objCupon.nrComprabanteCliente.Trim() + "/ Cupon: " + ExtensionString.EmptyIfNull(objCupon.nrCuponPosnet).Trim() + "/ Tarjeta: " + ExtensionString.EmptyIfNull(objCupon.nrTarjeta).Trim(); unSMC.GrabarAsientoContablePosdatados(vlMontoAcreditacion, objConciliacion.nrCajaAdm.Value, objConciliacion.dsUsuario, objConciliacion.IdConciliacion.ToString(), context, Anula_Viajes_con_Tarjeta_a_Bancos, Anula_conciliacion_de_Viajes, objCupon.nrLicencia.ToString(), nrFactura, item.fechaPago.Value, objCupon.nrCupon, "Manual"); } // Eliminamos el detalle de la conciliacion //context.Database.ExecuteSqlCommand("DELETE FROM TB_ConciliacionDetalle where IdConciliacion= {0}", objConciliacionBD.IdConciliacion); objConciliacionBD.dtModificacion = DateTime.Now; objConciliacion.dsUsuario = this.Usuario; objConciliacion.nrCajaAdm = Decimal.Parse(this.CajaAdm); objConciliacionBD.flestado = "E"; // Conciliacion Eliminada context.SaveChanges(); // Procesamos el Movimientos posdatados unSMC.procesarMovimientosPosdatados(Decimal.Parse(this.CajaAdm), this.Usuario); transaction.Complete(); } } } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); Trace.TraceError("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (var ve in eve.ValidationErrors) { Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); Trace.TraceError("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } throw; } } // FIN anularConciliacionAutomatica